{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Archive",
  "home_page_url": "https://waylonwalker.com/",
  "feed_url": "https://waylonwalker.com/archive/feed.json",
  "description": "All published posts",
  "authors": [
    {
      "name": "Waylon Walker"
    }
  ],
  "items": [
    {
      "id": "https://waylonwalker.com/thought-994/",
      "url": "https://waylonwalker.com/thought-994/",
      "title": "💭 These Layoffs Backfired Instantly (ft. Primeagen) - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"5WrGfsh7x5U\" title=\"These Layoffs Backfired Instantly (ft. Primeagen)\" playlabel=\"Play: These Layoffs Backfired Instantly (ft. Primeagen)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ePrime on Big A they make a really great mix.  I really like primes perspective on the layoffs here.  Adding in an ops perspecive a bit here.  Maybe inspiring a full level post.  infra, ops, sre roles are incentivised to keep uptime, that is your goal in these roles.  Idk how it works on big products, its probably more greased, higher stakes, more well thoguht out, more well discussed.  In my role for many small internal applications developers constantly use my platform different and find new edge cases that we never expected to hit.  Depending on my week I’m either the team blocker and I’m fighting fires all week making sure new releases are getting out and stay running while everything is breaking, or I’m tending to the fire lanes, predicting the new edges, looking at previous outages and asking myself how do we never see this category of failure again.  I think AI is really good a enabling both of these.  I think you can probably run a leaner team with AI on the latter half.  AI is really good at implementing things consitent (if you are careful) and fast.  But when shit hits the fan, you still need the people who know the systems to get things back up quickly and prevent a cascade of more problems.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"5WrGfsh7x5U\" title=\"These Layoffs Backfired Instantly (ft. Primeagen)\" playlabel=\"Play: These Layoffs Backfired Instantly (ft. Primeagen)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nPrime on Big A they make a really great mix.  I really like primes perspective on the layoffs here.  Adding in an ops perspecive a bit here.  Maybe inspiring a full level post.  infra, ops, sre roles are incentivised to keep uptime, that is your goal in these roles.  Idk how it works on big products, its probably more greased, higher stakes, more well thoguht out, more well discussed.  In my role for many small internal applications developers constantly use my platform different and find new edge cases that we never expected to hit.  Depending on my week I'm either the team blocker and I'm fighting fires all week making sure new releases are getting out and stay running while everything is breaking, or I'm tending to the fire lanes, predicting the new edges, looking at previous outages and asking myself how do we never see this category of failure again.  I think AI is really good a enabling both of these.  I think you can probably run a leaner team with AI on the latter half.  AI is really good at implementing things consitent (if you are careful) and fast.  But when shit hits the fan, you still need the people who know the systems to get things back up quickly and prevent a cascade of more problems.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=5WrGfsh7x5U",
      "date_published": "2026-05-13T08:36:19Z",
      "date_modified": "2026-05-13T08:36:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-993/",
      "url": "https://waylonwalker.com/thought-993/",
      "title": "💭 Foo Fighters: Tiny Desk Concert - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"wxaXWSVhRXU\" title=\"Foo Fighters: Tiny Desk Concert\" playlabel=\"Play: Foo Fighters: Tiny Desk Concert\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat a great way to start a Wednesday morning with a fresh brand new tiny desk concert with the Foo Fighters.  The killed it, love the classics.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"wxaXWSVhRXU\" title=\"Foo Fighters: Tiny Desk Concert\" playlabel=\"Play: Foo Fighters: Tiny Desk Concert\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWhat a great way to start a Wednesday morning with a fresh brand new tiny desk concert with the Foo Fighters.  The killed it, love the classics.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=wxaXWSVhRXU\u0026list=RDwxaXWSVhRXU\u0026start_radio=1",
      "date_published": "2026-05-13T07:33:55Z",
      "date_modified": "2026-05-13T07:33:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "music",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/agents-are-never-done/",
      "url": "https://waylonwalker.com/agents-are-never-done/",
      "title": "agents are never done",
      "content_html": "\u003cp\u003eAgentic coding has this nice trick of letting you bang out a project in an\nafternoon, something complex that would have take some real time to implement,\nnot just some rounding error that can slip right in between the jira board.\nThen it will be perpetually never done.  There will always be bugs and thorns\nrear their head up, new features no one ever thought of, and now no one really\nhas to think much about beyond having the idea.\u003c/p\u003e\n\u003cp\u003eThis part of software engineering has always been here, its the root of the\nnever complete 200 side projects.  But now it feels like fuel has been poured\non the fire, like we can get more done than ever.  But we are tricking\nourselves, these projects will never be “done”.  There’s always more to add.\nWithout feeling any of the pain of implementing it yourself, why not just keep\nadding new features forever.  This is the mentality that is crushing me right now.\u003c/p\u003e\n\u003cp\u003eIt pulls at your token anxiety like crazy.  You look at the usage board and you\nare almost cooked so you switch to mini models that cant really do much without\nyou responding yes every 30s, or your usage is still in the green with a day to\ngo so you are up till midnight trying to get your clanker to cook overnight on\na side project, but really the stuff that you can just think of off the top of\nyour head take 15 minutes max so you just keep checking in and adding a little\nbit more.\u003c/p\u003e\n",
      "content_text": "\nAgentic coding has this nice trick of letting you bang out a project in an\nafternoon, something complex that would have take some real time to implement,\nnot just some rounding error that can slip right in between the jira board.\nThen it will be perpetually never done.  There will always be bugs and thorns\nrear their head up, new features no one ever thought of, and now no one really\nhas to think much about beyond having the idea.\n\nThis part of software engineering has always been here, its the root of the\nnever complete 200 side projects.  But now it feels like fuel has been poured\non the fire, like we can get more done than ever.  But we are tricking\nourselves, these projects will never be \"done\".  There's always more to add.\nWithout feeling any of the pain of implementing it yourself, why not just keep\nadding new features forever.  This is the mentality that is crushing me right now.\n\nIt pulls at your token anxiety like crazy.  You look at the usage board and you\nare almost cooked so you switch to mini models that cant really do much without\nyou responding yes every 30s, or your usage is still in the green with a day to\ngo so you are up till midnight trying to get your clanker to cook overnight on\na side project, but really the stuff that you can just think of off the top of\nyour head take 15 minutes max so you just keep checking in and adding a little\nbit more.\n\n",
      "summary": "Agentic coding has this nice trick of letting you bang out a project in an afternoon, something complex that would have take some real time to implement, not...",
      "date_published": "2026-05-11T06:59:07Z",
      "date_modified": "2026-05-11T06:59:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/great-taste-of-pharloom/",
      "url": "https://waylonwalker.com/shots/great-taste-of-pharloom/",
      "title": "Great Taste Of Pharloom",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/ccbcfe04-a033-4667-8cce-10431ed1f392.mp4\" class=\"glightbox-link\" aria-label=\"Great Taste Of Pharloom\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/ccbcfe04-a033-4667-8cce-10431ed1f392.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.waylonwalker.com/file/ccbcfe04-a033-4667-8cce-10431ed1f392.mp4\" type=\"video/mp4\"\u003eGreat Taste Of Pharloom\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eGreat Taste Of Pharloom\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Great Taste Of Pharloom](http://dropper.waylonwalker.com/file/ccbcfe04-a033-4667-8cce-10431ed1f392.mp4)\n\n\u003e Great Taste Of Pharloom\n",
      "summary": "Great Taste Of Pharloom",
      "image": "http://dropper.waylonwalker.com/file/ccbcfe04-a033-4667-8cce-10431ed1f392.mp4",
      "date_published": "2026-05-10T20:04:10Z",
      "date_modified": "2026-05-10T20:04:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/chef-lugoli/",
      "url": "https://waylonwalker.com/shots/chef-lugoli/",
      "title": "Chef Lugoli",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/a7b03707-8bb6-40b3-81ca-a443b5c78d45.mp4\" class=\"glightbox-link\" aria-label=\"Chef Lugoli\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/a7b03707-8bb6-40b3-81ca-a443b5c78d45.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.waylonwalker.com/file/a7b03707-8bb6-40b3-81ca-a443b5c78d45.mp4\" type=\"video/mp4\"\u003eChef Lugoli\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eChef Lugoli\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Chef Lugoli](http://dropper.waylonwalker.com/file/a7b03707-8bb6-40b3-81ca-a443b5c78d45.mp4)\n\n\u003e Chef Lugoli\n",
      "summary": "Chef Lugoli",
      "image": "http://dropper.waylonwalker.com/file/a7b03707-8bb6-40b3-81ca-a443b5c78d45.mp4",
      "date_published": "2026-05-10T19:59:49Z",
      "date_modified": "2026-05-10T19:59:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-992/",
      "url": "https://waylonwalker.com/thought-992/",
      "title": "💭 Microsoft Doesn't Have it in Them to Win - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"n5gE2RX2GVA\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI havent used windows in years at this point, but I feel this on the products I am forced to use for work.  Basic features are not right, kinda work most of the time.  New features, ai integrations, new skin/design, but still teams can’t use my system mic appropriately yet every other app does.\u003c/p\u003e\n\u003cp\u003eAlso feel this computers have not got significantly better since around getting ssds.  Yes they are better, but not at the same rate of being obsolete every two years.  I hope we hit local model land and it flips this a bit, not in quite the obsolete every two years range, but some new hardware actually lets you do meaningful more new things.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"n5gE2RX2GVA\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI havent used windows in years at this point, but I feel this on the products I am forced to use for work.  Basic features are not right, kinda work most of the time.  New features, ai integrations, new skin/design, but still teams can't use my system mic appropriately yet every other app does.\n\nAlso feel this computers have not got significantly better since around getting ssds.  Yes they are better, but not at the same rate of being obsolete every two years.  I hope we hit local model land and it flips this a bit, not in quite the obsolete every two years range, but some new hardware actually lets you do meaningful more new things.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/n5gE2RX2GVA?si=Wu08hMDV8fREPJKJ",
      "date_published": "2026-05-09T12:00:01Z",
      "date_modified": "2026-05-09T12:00:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-991/",
      "url": "https://waylonwalker.com/thought-991/",
      "title": "💭 How to Install Silksong mods on the Steam Deck | Long Play Tech",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://longplaytech.com/posts/how-to-install-silksong-mods-on-the-steam-deck/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://longplaytech.com/posts/how-to-install-silksong-mods-on-the-steam-deck/featured.jpg\" alt=\"How to Install Silksong mods on the Steam\u0026amp;nbsp;Deck — Having a tough time with Hollow Knight: Silksong? These mods will help.\" loading=\"lazy\"/ data-glightbox=\"description: How to Install Silksong mods on the Steam\u0026amp;nbsp;Deck — Having a tough time with Hollow Knight: Silksong? These mods will help.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHow to Install Silksong mods on the Steam\u0026amp;nbsp;Deck\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHaving a tough time with Hollow Knight: Silksong? These mods will help.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLong Play Tech · longplaytech.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eReally good tutorial for how to mod silksong on the steam deck.  We just did this on my son’s steam deck.  I’d add a reccomendation to map ~ to a back button like L4. I think this guy was docked with a keyboard.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://longplaytech.com/posts/how-to-install-silksong-mods-on-the-steam-deck/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://longplaytech.com/posts/how-to-install-silksong-mods-on-the-steam-deck/featured.jpg\" alt=\"How to Install Silksong mods on the Steam\u0026amp;nbsp;Deck — Having a tough time with Hollow Knight: Silksong? These mods will help.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHow to Install Silksong mods on the Steam\u0026amp;nbsp;Deck\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHaving a tough time with Hollow Knight: Silksong? These mods will help.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLong Play Tech \u0026middot; longplaytech.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nReally good tutorial for how to mod silksong on the steam deck.  We just did this on my son's steam deck.  I'd add a reccomendation to map ~ to a back button like L4. I think this guy was docked with a keyboard.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://longplaytech.com/posts/how-to-install-silksong-mods-on-the-steam-deck/",
      "date_published": "2026-05-09T09:46:52Z",
      "date_modified": "2026-05-09T09:46:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/couriers-rasher-full/",
      "url": "https://waylonwalker.com/shots/couriers-rasher-full/",
      "title": "Couriers Rasher Full",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/5ed703dd-d2f2-4f84-aaec-7d25227c4156.mp4\" class=\"glightbox-link\" aria-label=\"Couriers Rasher Full\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/5ed703dd-d2f2-4f84-aaec-7d25227c4156.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.waylonwalker.com/file/5ed703dd-d2f2-4f84-aaec-7d25227c4156.mp4\" type=\"video/mp4\"\u003eCouriers Rasher Full\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCouriers Rasher Full\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Couriers Rasher Full](http://dropper.waylonwalker.com/file/5ed703dd-d2f2-4f84-aaec-7d25227c4156.mp4)\n\n\u003e Couriers Rasher Full\n",
      "summary": "Couriers Rasher Full",
      "image": "http://dropper.waylonwalker.com/file/5ed703dd-d2f2-4f84-aaec-7d25227c4156.mp4",
      "date_published": "2026-05-08T15:45:50Z",
      "date_modified": "2026-05-08T15:45:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-990/",
      "url": "https://waylonwalker.com/thought-990/",
      "title": "💭 Cloudflare cuts 1100",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.cloudflare.com/building-for-the-future/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cf-assets.www.cloudflare.com/zkvhlag99gkb/67gFbQxsEORTbYLfA9aiYJ/fa428c2991093073e8ca03a4bbef94e3/dark.png\" alt=\"Building For The Future — This afternoon, we sent the following email to our global team. One of our core values at Cloudflare is transparency, and we believe it\" loading=\"lazy\"/ data-glightbox=\"description: Building For The Future — This afternoon, we sent the following email to our global team. One of our core values at Cloudflare is transparency, and we believe it\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBuilding For The Future\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis afternoon, we sent the following email to our global team. One of our core values at Cloudflare is transparency, and we believe it\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eThe Cloudflare Blog · blog.cloudflare.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFull salary for the rest of the year after being let go.  As much as this sucks as much as the job market sucks.  It’s good to see that these companies laying off huge numbers during good times are trying to take care of those they brought on.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.cloudflare.com/building-for-the-future/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cf-assets.www.cloudflare.com/zkvhlag99gkb/67gFbQxsEORTbYLfA9aiYJ/fa428c2991093073e8ca03a4bbef94e3/dark.png\" alt=\"Building For The Future — This afternoon, we sent the following email to our global team. One of our core values at Cloudflare is transparency, and we believe it\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBuilding For The Future\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis afternoon, we sent the following email to our global team. One of our core values at Cloudflare is transparency, and we believe it\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eThe Cloudflare Blog \u0026middot; blog.cloudflare.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFull salary for the rest of the year after being let go.  As much as this sucks as much as the job market sucks.  It's good to see that these companies laying off huge numbers during good times are trying to take care of those they brought on.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.cloudflare.com/building-for-the-future/",
      "date_published": "2026-05-08T08:59:48Z",
      "date_modified": "2026-05-08T08:59:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-989/",
      "url": "https://waylonwalker.com/thought-989/",
      "title": "💭 Programming Sucks",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.stilldrinking.org/programming-sucks\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.stilldrinking.org/blog_images/programming-sucks.jpg\" alt=\"Programming Sucks\" loading=\"lazy\"/ data-glightbox=\"description: Programming Sucks\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eProgramming Sucks\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estilldrinking.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolutely incredible, will fill some notes later\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.stilldrinking.org/programming-sucks\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.stilldrinking.org/blog_images/programming-sucks.jpg\" alt=\"Programming Sucks\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eProgramming Sucks\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estilldrinking.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAbsolutely incredible, will fill some notes later\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.stilldrinking.org/programming-sucks",
      "date_published": "2026-05-08T08:41:49Z",
      "date_modified": "2026-05-08T08:41:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-988/",
      "url": "https://waylonwalker.com/thought-988/",
      "title": "💭 Programming Still Sucks. — Writing",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.stvn.sh/writing/programming-still-sucks-fqffhyp\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.stvn.sh.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.stvn.sh.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eProgramming Still Sucks. — Writing\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSorry Peter. — I\u0026#39;m at a birthday party, and while most people here also work in tech, there\u0026#39;s always a Guy with a Real Job. You know, a physical job, building some or other thing people need. And...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estvn.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolute banger of a post, this is the time we are living in. Explain “are you afraid AI is going to take your job” to a non tech blue collar worker.  Broken over promises, greed, and projects mismanaged by leadership who has no idea what the day to day work actually does and how critical it is.\u003c/p\u003e\n\u003cp\u003eI’m not quite in Sara’s position, but I feel something shielded by half of this working deep inside of a non tech part of a non tech company leading a very small rag tag team with get shit done attitude.\u003c/p\u003e\n\u003cp\u003eBut I feel it, I see colleagues hit by these blasts.b I get clipped with shrapnel from some of the largest blasts.  But nothing as significant as I see many others hit with\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.stvn.sh/writing/programming-still-sucks-fqffhyp\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eProgramming Still Sucks. — Writing\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSorry Peter. — I\u0026#39;m at a birthday party, and while most people here also work in tech, there\u0026#39;s always a Guy with a Real Job. You know, a physical job, building some or other thing people need. And...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estvn.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAbsolute banger of a post, this is the time we are living in. Explain \"are you afraid AI is going to take your job\" to a non tech blue collar worker.  Broken over promises, greed, and projects mismanaged by leadership who has no idea what the day to day work actually does and how critical it is.\n\nI'm not quite in Sara's position, but I feel something shielded by half of this working deep inside of a non tech part of a non tech company leading a very small rag tag team with get shit done attitude.\n\nBut I feel it, I see colleagues hit by these blasts.b I get clipped with shrapnel from some of the largest blasts.  But nothing as significant as I see many others hit with \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.stvn.sh/writing/programming-still-sucks-fqffhyp",
      "date_published": "2026-05-07T08:50:59Z",
      "date_modified": "2026-05-07T08:50:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "dev",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/forgejo-push-to-create/",
      "url": "https://waylonwalker.com/forgejo-push-to-create/",
      "title": "forgejo push to create",
      "content_html": "\u003cp\u003eI just learned that forgejo has a push to create repo feature and it is a\ngamechanger.  Upon first try it didn’t work, with just a couple of environment\nvariables I was up and running with push to create.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enotify.wayl.one on  main is 📦 v0.1.62  v3.14.4  NO PYTHON VENV SET  USING SYSTEM NVIM\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git remote add origin https://git.waylonwalker.com/waylon/notify.wayl.one\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enotify.wayl.one on  main is 📦 v0.1.62  v3.14.4  NO PYTHON VENV SET  USING SYSTEM NVIM\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git push\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eremote: Push to create is not enabled \u003cspan class=\"k\"\u003efor\u003c/span\u003e users.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efatal: unable to access \u003cspan class=\"s1\"\u003e\u0026#39;https://git.waylonwalker.com/waylon/notify.wayl.one/\u0026#39;\u003c/span\u003e: The requested URL returned error: \u003cspan class=\"m\"\u003e403\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSo I added the following environment variables.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon S. Walker \u0026lt;waylon@waylonwalker.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Wed May 6 21:56:53 2026 -0500\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    enable push to create\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003ediff --git a/k8s/forgejo/deployment.yaml b/k8s/forgejo/deployment.yaml\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003eindex d77daab..9346763 100644\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e--- a/k8s/forgejo/deployment.yaml\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+++ b/k8s/forgejo/deployment.yaml\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e@@ -91,6 +91,10 @@ spec:\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e               value: \u0026#34;0.0.0.0\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             - name: FORGEJO__server__HTTP_PORT\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e               value: \u0026#34;3000\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+            - name: FORGEJO__repository__ENABLE_PUSH_CREATE_USER\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+              value: \u0026#34;true\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+            - name: FORGEJO__repository__ENABLE_PUSH_CREATE_ORG\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+              value: \u0026#34;true\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             - name: FORGEJO__database__DB_TYPE\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e               value: postgres\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e             - name: FORGEJO__database__HOST\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://github.com/WaylonWalker/homelab-argo/commit/b2e953bc12\" 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\"\u003ehttps://github.com/WaylonWalker/homelab-argo/commit/b2e953bc12\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eTried again, and it just worked!\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enotify.wayl.one on  main is 📦 v0.1.62  v3.14.4  NO PYTHON VENV SET  USING SYSTEM NVIM\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git push\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEnumerating objects: 171, \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCounting objects: 100% \u003cspan class=\"o\"\u003e(\u003c/span\u003e171/171\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDelta compression using up to \u003cspan class=\"m\"\u003e12\u003c/span\u003e threads\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCompressing objects: 100% \u003cspan class=\"o\"\u003e(\u003c/span\u003e169/169\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWriting objects: 100% \u003cspan class=\"o\"\u003e(\u003c/span\u003e171/171\u003cspan class=\"o\"\u003e)\u003c/span\u003e, 176.22 KiB \u003cspan class=\"p\"\u003e|\u003c/span\u003e 16.02 MiB/s, \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal \u003cspan class=\"m\"\u003e171\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003edelta 99\u003cspan class=\"o\"\u003e)\u003c/span\u003e, reused \u003cspan class=\"m\"\u003e0\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003edelta 0\u003cspan class=\"o\"\u003e)\u003c/span\u003e, pack-reused \u003cspan class=\"m\"\u003e0\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003efrom 0\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eremote: Resolving deltas: 100% \u003cspan class=\"o\"\u003e(\u003c/span\u003e99/99\u003cspan class=\"o\"\u003e)\u003c/span\u003e, \u003cspan class=\"k\"\u003edone\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo https://git.waylonwalker.com/waylon/notify.wayl.one\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e * \u003cspan class=\"o\"\u003e[\u003c/span\u003enew branch\u003cspan class=\"o\"\u003e]\u003c/span\u003e      main -\u0026gt; main\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI just learned that forgejo has a push to create repo feature and it is a\ngamechanger.  Upon first try it didn't work, with just a couple of environment\nvariables I was up and running with push to create.\n\n``` bash\nnotify.wayl.one on  main is 📦 v0.1.62  v3.14.4  NO PYTHON VENV SET  USING SYSTEM NVIM\n❯ git remote add origin https://git.waylonwalker.com/waylon/notify.wayl.one\nnotify.wayl.one on  main is 📦 v0.1.62  v3.14.4  NO PYTHON VENV SET  USING SYSTEM NVIM\n❯ git push\nremote: Push to create is not enabled for users.\nfatal: unable to access 'https://git.waylonwalker.com/waylon/notify.wayl.one/': The requested URL returned error: 403\n```\n\nSo I added the following environment variables.\n\n``` diff\nAuthor: Waylon S. Walker \u003cwaylon@waylonwalker.com\u003e\nDate:   Wed May 6 21:56:53 2026 -0500\n\n    enable push to create\n\ndiff --git a/k8s/forgejo/deployment.yaml b/k8s/forgejo/deployment.yaml\nindex d77daab..9346763 100644\n--- a/k8s/forgejo/deployment.yaml\n+++ b/k8s/forgejo/deployment.yaml\n@@ -91,6 +91,10 @@ spec:\n               value: \"0.0.0.0\"\n             - name: FORGEJO__server__HTTP_PORT\n               value: \"3000\"\n+            - name: FORGEJO__repository__ENABLE_PUSH_CREATE_USER\n+              value: \"true\"\n+            - name: FORGEJO__repository__ENABLE_PUSH_CREATE_ORG\n+              value: \"true\"\n             - name: FORGEJO__database__DB_TYPE\n               value: postgres\n             - name: FORGEJO__database__HOST\n```\n\nhttps://github.com/WaylonWalker/homelab-argo/commit/b2e953bc12\n\nTried again, and it just worked!\n\n``` bash\nnotify.wayl.one on  main is 📦 v0.1.62  v3.14.4  NO PYTHON VENV SET  USING SYSTEM NVIM\n❯ git push\nEnumerating objects: 171, done.\nCounting objects: 100% (171/171), done.\nDelta compression using up to 12 threads\nCompressing objects: 100% (169/169), done.\nWriting objects: 100% (171/171), 176.22 KiB | 16.02 MiB/s, done.\nTotal 171 (delta 99), reused 0 (delta 0), pack-reused 0 (from 0)\nremote: Resolving deltas: 100% (99/99), done.\nTo https://git.waylonwalker.com/waylon/notify.wayl.one\n * [new branch]      main -\u003e main\n ```\n",
      "summary": "I just learned that forgejo has a push to create repo feature and it is a gamechanger. Upon first try it didn't work, with just a couple of environment...",
      "date_published": "2026-05-06T21:58:55Z",
      "date_modified": "2026-05-06T21:58:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://waylonwalker.com/nless/",
      "url": "https://waylonwalker.com/nless/",
      "title": "nless",
      "content_html": "\u003cp\u003enless is a seriously sick tui for exploring streaming data.  It makes it\nseriously simple to pivot (U), drill in (Enter), sort (s).  It leave\nbreadcrumbs as you go and you can press q to back out.\u003c/p\u003e\n\u003cp\u003ePlay with your kubernetes events.  Ya, my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e is far from perfect, dont judge.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get events -A -w \u003cspan class=\"p\"\u003e|\u003c/span\u003e uvx --from nothing-less nless\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"http://dropper.wayl.one/file/ceda8873-cb08-4436-a3ac-b5bf4a0b2379.mp4\" class=\"glightbox-link\" aria-label=\"ceda8873-cb08-4436-a3ac-b5bf4a0b2379.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.wayl.one/file/ceda8873-cb08-4436-a3ac-b5bf4a0b2379.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.wayl.one/file/ceda8873-cb08-4436-a3ac-b5bf4a0b2379.mp4\" type=\"video/mp4\"\u003eceda8873-cb08-4436-a3ac-b5bf4a0b2379.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nnless is a seriously sick tui for exploring streaming data.  It makes it\nseriously simple to pivot (U), drill in (Enter), sort (s).  It leave\nbreadcrumbs as you go and you can press q to back out.\n\nPlay with your kubernetes events.  Ya, my homelab is far from perfect, dont judge.\n\n``` bash\nkubectl get events -A -w | uvx --from nothing-less nless\n```\n\n![ceda8873-cb08-4436-a3ac-b5bf4a0b2379.mp4](http://dropper.wayl.one/file/ceda8873-cb08-4436-a3ac-b5bf4a0b2379.mp4)\n",
      "summary": "nless is a seriously sick tui for exploring streaming data. It makes it seriously simple to pivot (U), drill in (Enter), sort (s). It leave breadcrumbs as...",
      "date_published": "2026-05-06T20:45:01Z",
      "date_modified": "2026-05-06T20:45:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-987/",
      "url": "https://waylonwalker.com/thought-987/",
      "title": "💭 Ghostty is leaving GitHub",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://mitchellh.com/writing/ghostty-leaving-github\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mitchellh.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mitchellh.com.png\"\u003e\n    \u003c/a\u003e\u003cdiv class=\"embed-card-content\"\u003e\u003ca href=\"https://mitchellh.com/writing/ghostty-leaving-github\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mitchellh.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mitchellh.com.png\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGhostty Is Leaving GitHub\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eMitchell Hashimoto · mitchellh.com\u003c/div\u003e\n      \u003c/a\u003e\u003cdiv class=\"embed-card-source\"\u003e\u003ca href=\"https://mitchellh.com/writing/ghostty-leaving-github\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mitchellh.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mitchellh.com.png\"\u003eFound on HN: \u003c/a\u003e\u003ca href=\"https://news.ycombinator.com/item?id=47939579\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/news.ycombinator.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/news.ycombinator.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ediscussion\u003c/a\u003e\u003c/div\u003e\n    \u003c/div\u003e\n  \n\u003c/div\u003e\n\u003cp\u003eThe GitHub tears post.  I feel it, maybe not as much as @mitchelh, but I feel it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://mitchellh.com/writing/ghostty-leaving-github\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGhostty Is Leaving GitHub\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eMitchell Hashimoto \u0026middot; mitchellh.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-source\"\u003eFound on HN: \u003ca href=\"https://news.ycombinator.com/item?id=47939579\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ediscussion\u003c/a\u003e\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe GitHub tears post.  I feel it, maybe not as much as @mitchelh, but I feel it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://news.ycombinator.com/item?id=47939579",
      "date_published": "2026-05-06T20:38:11Z",
      "date_modified": "2026-05-06T20:38:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-986/",
      "url": "https://waylonwalker.com/thought-986/",
      "title": "💭 Red Squares — the GitHub outage graph",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://red-squares.cian.lol/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRed Squares — the GitHub outage graph\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA satirical contribution graph: red squares track GitHub.com platform outages instead of green squares tracking commits.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ered-squares.cian.lol\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eyet another interesting visualization of github outages.  These guys are getting raked over the coals.  It really sucks to see.  Not quite tears to my eyes \u003ca href=\"https://news.ycombinator.com/item?id=47939579\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/news.ycombinator.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/news.ycombinator.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emitchelh\u003c/a\u003e.  But it feels like a core part of opensource has been dying for a few years now and is now getting ripped to shreds.  The central location for open source is becoming more fragmented and I don’t see a path to where it ever gets any better.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://red-squares.cian.lol/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRed Squares — the GitHub outage graph\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA satirical contribution graph: red squares track GitHub.com platform outages instead of green squares tracking commits.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ered-squares.cian.lol\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nyet another interesting visualization of github outages.  These guys are getting raked over the coals.  It really sucks to see.  Not quite tears to my eyes [mitchelh](https://news.ycombinator.com/item?id=47939579).  But it feels like a core part of opensource has been dying for a few years now and is now getting ripped to shreds.  The central location for open source is becoming more fragmented and I don't see a path to where it ever gets any better.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://red-squares.cian.lol/",
      "date_published": "2026-05-06T20:36:00Z",
      "date_modified": "2026-05-06T20:36:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/couriers-rasher-so-close/",
      "url": "https://waylonwalker.com/shots/couriers-rasher-so-close/",
      "title": "Couriers Rasher So Close",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f3dee655-28b0-482f-807e-f4dc07dddcc4.mp4\" class=\"glightbox-link\" aria-label=\"Couriers Rasher So Close\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f3dee655-28b0-482f-807e-f4dc07dddcc4.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f3dee655-28b0-482f-807e-f4dc07dddcc4.mp4\" type=\"video/mp4\"\u003eCouriers Rasher So Close\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI was in the room where it happens when it went sour!\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f8f2e7d9-5f01-42af-8542-7eb1dc79a01e.mp4\" class=\"glightbox-link\" aria-label=\"Couriers Rasher So Close Full\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f8f2e7d9-5f01-42af-8542-7eb1dc79a01e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f8f2e7d9-5f01-42af-8542-7eb1dc79a01e.mp4\" type=\"video/mp4\"\u003eCouriers Rasher So Close Full\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere is the full run end to end, I’m sure there are many points I could have saved the \u0026lt;5s I still needed.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Couriers Rasher So Close](https://dropper.waylonwalker.com/file/f3dee655-28b0-482f-807e-f4dc07dddcc4.mp4)\n\u003e I was in the room where it happens when it went sour!\n\n\n![Couriers Rasher So Close Full](https://dropper.waylonwalker.com/file/f8f2e7d9-5f01-42af-8542-7eb1dc79a01e.mp4)\n\u003e Here is the full run end to end, I'm sure there are many points I could have saved the \u003c5s I still needed.\n",
      "summary": "I almost made it. Couriers Rasher is such a long run.",
      "image": "https://dropper.waylonwalker.com/file/f3dee655-28b0-482f-807e-f4dc07dddcc4.mp4",
      "date_published": "2026-05-05T21:26:31Z",
      "date_modified": "2026-05-05T21:26:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/couriers-rasher-so-close-full/",
      "url": "https://waylonwalker.com/shots/couriers-rasher-so-close-full/",
      "title": "Couriers Rasher So Close Full",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/d7ae0df5-1f23-4787-8274-b51f23941fcf.mp4\" class=\"glightbox-link\" aria-label=\"Couriers Rasher So Close Full\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/d7ae0df5-1f23-4787-8274-b51f23941fcf.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.waylonwalker.com/file/d7ae0df5-1f23-4787-8274-b51f23941fcf.mp4\" type=\"video/mp4\"\u003eCouriers Rasher So Close Full\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCouriers Rasher So Close Full\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Couriers Rasher So Close Full](http://dropper.waylonwalker.com/file/d7ae0df5-1f23-4787-8274-b51f23941fcf.mp4)\n\n\u003e Couriers Rasher So Close Full\n",
      "summary": "Couriers Rasher So Close Full",
      "image": "http://dropper.waylonwalker.com/file/d7ae0df5-1f23-4787-8274-b51f23941fcf.mp4",
      "date_published": "2026-05-05T21:15:25Z",
      "date_modified": "2026-05-05T21:15:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-57/",
      "url": "https://waylonwalker.com/ping-57/",
      "title": "almost left tokens on the table",
      "content_html": "\u003cp\u003eAlmost didn’t get through those gippity tokens this week, woke up yesterday\nwith 50% and a day to use them, cut full 5.4 loose on a  big project that needs\na lot of work an it gobbled em right up throughout the day ran out just before\nbed.\u003c/p\u003e\n",
      "content_text": "\n\nAlmost didn't get through those gippity tokens this week, woke up yesterday\nwith 50% and a day to use them, cut full 5.4 loose on a  big project that needs\na lot of work an it gobbled em right up throughout the day ran out just before\nbed.\n",
      "summary": "Almost didn't get through those gippity tokens this week, woke up yesterday with 50% and a day to use them, cut full 5.4 loose on a big project that needs a...",
      "date_published": "2026-05-05T07:33:20Z",
      "date_modified": "2026-05-05T07:33:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-985/",
      "url": "https://waylonwalker.com/thought-985/",
      "title": "💭 Desktop Crash 2026",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/desktop-crash-2026/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"Desktop Crash 2026 | Nic Payne — PC Crash Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died. live-booted to ubuntu server found re\" loading=\"lazy\"/ data-glightbox=\"description: Desktop Crash 2026 | Nic Payne — PC Crash Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died. live-booted to ubuntu server found re\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDesktop Crash 2026 | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePC Crash Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died. live-booted to ubuntu server found re\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m taking this as a reminder to treat every machine like its about to catch fire, any machine with a user regularly using it already has the match lit.  I need to go through and commit draft blog posts, dirty \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e POC’s need to get out or get in, and not forever be in limbo.  My efforts this year have been well intention ed to keep projects clean, on main, not dirty, but I think agents are making it worse before they make it better.  I have some new ideas forming and old ideas for managing this have failed me.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/desktop-crash-2026/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"Desktop Crash 2026 | Nic Payne — PC Crash Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died. live-booted to ubuntu server found re\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDesktop Crash 2026 | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePC Crash Desktop crashed days ago, apparently my primary drive has been going bad for a while and eventually it just died. live-booted to ubuntu server found re\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm taking this as a reminder to treat every machine like its about to catch fire, any machine with a user regularly using it already has the match lit.  I need to go through and commit draft blog posts, dirty homelab POC's need to get out or get in, and not forever be in limbo.  My efforts this year have been well intention ed to keep projects clean, on main, not dirty, but I think agents are making it worse before they make it better.  I have some new ideas forming and old ideas for managing this have failed me.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/desktop-crash-2026/",
      "date_published": "2026-05-02T10:30:05Z",
      "date_modified": "2026-05-02T10:30:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-984/",
      "url": "https://waylonwalker.com/thought-984/",
      "title": "💭 ARTEMIS II PHOTO TIMELINE",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://artemistimeline.com/#jeremy-hansen-suited-up-and-ready\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://artemistimeline.com/web/9608627.jpg\" alt=\"Artemis II Photo Timeline — An interactive photo timeline of NASA\" loading=\"lazy\"/ data-glightbox=\"description: Artemis II Photo Timeline — An interactive photo timeline of NASA\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eArtemis II Photo Timeline\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAn interactive photo timeline of NASA\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eartemistimeline.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eHank Greed made a really cool site to explore the Artemis II mission with Claude Code.  Now this is what agentic coding is for, such a cool app to scroll around on and visualize when the photos were taken.  Listening to the video is sounded really hard to get all of the data to line up correctly, between devices and timezones it ws not straightforward even though all of the schedules and images were made public.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/72dbd361-091e-4e3e-b965-bca6dd11e33e.webp\" class=\"glightbox-link\" aria-label=\"72dbd361-091e-4e3e-b965-bca6dd11e33e.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/72dbd361-091e-4e3e-b965-bca6dd11e33e.webp\" alt=\"72dbd361-091e-4e3e-b965-bca6dd11e33e.webp\"/ data-glightbox=\"description: 72dbd361-091e-4e3e-b965-bca6dd11e33e.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://artemistimeline.com/#jeremy-hansen-suited-up-and-ready\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://artemistimeline.com/web/9608627.jpg\" alt=\"Artemis II Photo Timeline — An interactive photo timeline of NASA\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eArtemis II Photo Timeline\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAn interactive photo timeline of NASA\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eartemistimeline.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nHank Greed made a really cool site to explore the Artemis II mission with Claude Code.  Now this is what agentic coding is for, such a cool app to scroll around on and visualize when the photos were taken.  Listening to the video is sounded really hard to get all of the data to line up correctly, between devices and timezones it ws not straightforward even though all of the schedules and images were made public.\n\n![72dbd361-091e-4e3e-b965-bca6dd11e33e.webp](https://dropper.waylonwalker.com/file/72dbd361-091e-4e3e-b965-bca6dd11e33e.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://artemistimeline.com/#jeremy-hansen-suited-up-and-ready",
      "date_published": "2026-05-02T09:38:05Z",
      "date_modified": "2026-05-02T09:38:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "nasa",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-983/",
      "url": "https://waylonwalker.com/thought-983/",
      "title": "💭 Hacker News RSS",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hnrss.github.io/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHacker News RSS\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehnrss.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ehacker news rss feeds, Nice list of feeds to consider adding to your feed reader.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hnrss.github.io/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHacker News RSS\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehnrss.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nhacker news rss feeds, Nice list of feeds to consider adding to your feed reader.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hnrss.github.io/",
      "date_published": "2026-05-02T09:33:39Z",
      "date_modified": "2026-05-02T09:33:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "rss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/image-compare-in-markata-go/",
      "url": "https://waylonwalker.com/image-compare-in-markata-go/",
      "title": "image compare in markata go",
      "content_html": "\u003cp\u003e\u003ccode\u003emarkata-go\u003c/code\u003e now has web awesome integration for image compare.  It renders a\nnice web component with a slider to compare two images.\u003c/p\u003e\n\u003cwa-comparison class=\"markata-webawesome-comparison\"\u003e\u003cimg slot=\"after\" src=\"https://dropper.wayl.one/file/d628ffba-de18-4fff-91a8-700f037df119.webp\" alt=\"d628ffba-de18-4fff-91a8-700f037df119.webp\" loading=\"lazy\"\u003e\u003cimg slot=\"before\" src=\"https://dropper.waylonwalker.com/file/ca30665f-1a15-453e-aab8-221901c7df99.webp\" alt=\"\" loading=\"lazy\"\u003e\u003c/wa-comparison\u003e\n\u003cp\u003eIt’s done with a class wrapper around the image components.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e::: wa-comparison\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003ed628ffba-de18-4fff-91a8-700f037df119.webp\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.wayl.one/file/d628ffba-de18-4fff-91a8-700f037df119.webp\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![](https://dropper.waylonwalker.com/file/ca30665f-1a15-453e-aab8-221901c7df99.webp)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:::\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWithout \u003ccode\u003emarkata-go\u003c/code\u003e’s web awesome integration, the above would look like:\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e \u003cspan class=\"na\"\u003etype\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;module\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003eimport\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;https://ka-f.webawesome.com/webawesome@3.6.0/components/comparison/comparison.js\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ewa-comparison\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003eimg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003eslot\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;before\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003esrc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;https://dropper.wayl.one/file/d628ffba-de18-4fff-91a8-700f037df119.webp\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003ealt\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;Grayscale version of kittens in a basket looking around.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e/\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003eimg\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003eslot\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;after\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003esrc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;https://dropper.waylonwalker.com/file/ca30665f-1a15-453e-aab8-221901c7df99.webp\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003ealt\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;Color version of kittens in a basket looking around.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e/\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ewa-comparison\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n`markata-go` now has web awesome integration for image compare.  It renders a\nnice web component with a slider to compare two images.\n\n::: wa-comparison\n![d628ffba-de18-4fff-91a8-700f037df119.webp](https://dropper.wayl.one/file/d628ffba-de18-4fff-91a8-700f037df119.webp)\n![](https://dropper.waylonwalker.com/file/ca30665f-1a15-453e-aab8-221901c7df99.webp)\n:::\n\nIt's done with a class wrapper around the image components.\n\n``` md\n::: wa-comparison\n![d628ffba-de18-4fff-91a8-700f037df119.webp](https://dropper.wayl.one/file/d628ffba-de18-4fff-91a8-700f037df119.webp)\n![](https://dropper.waylonwalker.com/file/ca30665f-1a15-453e-aab8-221901c7df99.webp)\n:::\n```\n\nWithout `markata-go`'s web awesome integration, the above would look like:\n\n``` html\n\u003cscript type=\"module\"\u003e\n  import 'https://ka-f.webawesome.com/webawesome@3.6.0/components/comparison/comparison.js';\n\u003c/script\u003e\n\n\u003cwa-comparison\u003e\n  \u003cimg\n    slot=\"before\"\n    src=\"https://dropper.wayl.one/file/d628ffba-de18-4fff-91a8-700f037df119.webp\"\n    alt=\"Grayscale version of kittens in a basket looking around.\"\n  /\u003e\n  \u003cimg\n    slot=\"after\"\n    src=\"https://dropper.waylonwalker.com/file/ca30665f-1a15-453e-aab8-221901c7df99.webp\"\n    alt=\"Color version of kittens in a basket looking around.\"\n  /\u003e\n\u003c/wa-comparison\u003e\n```\n\n",
      "summary": "now has web awesome integration for image compare. It renders a nice web component with a slider to compare two images.",
      "date_published": "2026-05-01T07:40:44Z",
      "date_modified": "2026-05-01T07:40:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/testing-copilot-model-flag/",
      "url": "https://waylonwalker.com/testing-copilot-model-flag/",
      "title": "testing copilot model flag",
      "content_html": "\u003cp\u003eToday I found a way to test model syntax, cause the clankers always get the\nexact model name that copilot wants wrong.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopilot --model claude-sonnet-4.5 -p \u003cspan class=\"s2\"\u003e\u0026#34;Reply with OK\u0026#34;\u003c/span\u003e --allow-all --no-ask-user -s\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecopilot --model gpt-5.4 -p \u003cspan class=\"s2\"\u003e\u0026#34;Reply with OK\u0026#34;\u003c/span\u003e --allow-all --no-ask-user -s\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I found a way to test model syntax, cause the clankers always get the\nexact model name that copilot wants wrong.\n\n``` bash\ncopilot --model claude-sonnet-4.5 -p \"Reply with OK\" --allow-all --no-ask-user -s\ncopilot --model gpt-5.4 -p \"Reply with OK\" --allow-all --no-ask-user -s\n```\n",
      "summary": "Today I found a way to test model syntax, cause the clankers always get the exact model name that copilot wants wrong.",
      "date_published": "2026-04-29T11:05:39Z",
      "date_modified": "2026-04-29T11:05:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-982/",
      "url": "https://waylonwalker.com/thought-982/",
      "title": "💭 Hybrid theory is the greatest album of our generation - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"4BwsqMbruJA\" title=\"Hybrid theory is the greatest album of our generation\" playlabel=\"Play: Hybrid theory is the greatest album of our generation\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eJaime’s title hooked me in here, what guitar riff from Linkin Park had the greatest riff of our generation.  Theres something about Linkin Park unlike Killswitch Engage, Atreyu, Avenged Sevenfold, bands I would listen to at this time that I cant remember a single riff, I can think of Chesters vocals, or the unique scratching they did, but mostly the songs were a whole piece.  What riff is he talking about.\u003c/p\u003e\n\u003cp\u003eThe very first note of “One Step Closer” plays and I’m immediately transported back to 2003 sitting in my garage watching \u003ca href=\"https://www.youtube.com/watch?v=AoQ6fUTuYvg\u0026amp;list=PLoSp9yq_oDOdCOfCp_QTS017cjAi4Cv_0\u0026amp;index=2\" 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\"\u003eHuevosIII\u003c/a\u003e on repeat.  I can still remember the timing that Wes Miller did on the edit.  I can see the riders I looked up to for so long riding in formation.\u003c/p\u003e\n\u003cp\u003eTurns out this riff is so recognizable it takes me exactly where I was when I listened to it hundreds of times.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"4BwsqMbruJA\" title=\"Hybrid theory is the greatest album of our generation\" playlabel=\"Play: Hybrid theory is the greatest album of our generation\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nJaime's title hooked me in here, what guitar riff from Linkin Park had the greatest riff of our generation.  Theres something about Linkin Park unlike Killswitch Engage, Atreyu, Avenged Sevenfold, bands I would listen to at this time that I cant remember a single riff, I can think of Chesters vocals, or the unique scratching they did, but mostly the songs were a whole piece.  What riff is he talking about.\n\nThe very first note of \"One Step Closer\" plays and I'm immediately transported back to 2003 sitting in my garage watching [HuevosIII](https://www.youtube.com/watch?v=AoQ6fUTuYvg\u0026list=PLoSp9yq_oDOdCOfCp_QTS017cjAi4Cv_0\u0026index=2) on repeat.  I can still remember the timing that Wes Miller did on the edit.  I can see the riders I looked up to for so long riding in formation.\n\nTurns out this riff is so recognizable it takes me exactly where I was when I listened to it hundreds of times.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/4BwsqMbruJA",
      "date_published": "2026-04-28T21:31:51Z",
      "date_modified": "2026-04-28T21:31:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "moto",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-981/",
      "url": "https://waylonwalker.com/thought-981/",
      "title": "💭 Super Slow-Moto: The",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"mhzDT37b158\" title=\"Super Slow-Moto: The \u0026#34;Bubba Scrub\u0026#34; w/ James Stewart\" playlabel=\"Play: Super Slow-Moto: The \u0026#34;Bubba Scrub\u0026#34; w/ James Stewart\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThe most iconic shots of a scrub ever caught on camera.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"mhzDT37b158\" title=\"Super Slow-Moto: The \u0026#34;Bubba Scrub\u0026#34; w/ James Stewart\" playlabel=\"Play: Super Slow-Moto: The \u0026#34;Bubba Scrub\u0026#34; w/ James Stewart\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThe most iconic shots of a scrub ever caught on camera.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=mhzDT37b158",
      "date_published": "2026-04-27T20:04:35Z",
      "date_modified": "2026-04-27T20:04:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "moto",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-56/",
      "url": "https://waylonwalker.com/ping-56/",
      "title": "Can You Feel the Slop",
      "content_html": "\u003cp\u003eDo you ever vibe code out a POC, and you can just feel the shitty code\nunderneath?  Every change causes 3 things to break and wires get crossed all\nover the place.  Sometimes I just want to write the code again.  Maybe its time\nto slow down.\u003c/p\u003e\n",
      "content_text": "\nDo you ever vibe code out a POC, and you can just feel the shitty code\nunderneath?  Every change causes 3 things to break and wires get crossed all\nover the place.  Sometimes I just want to write the code again.  Maybe its time\nto slow down.\n",
      "summary": "Do you ever vibe code out a POC, and you can just feel the shitty code underneath? Every change causes 3 things to break and wires get crossed all over the...",
      "date_published": "2026-04-26T12:38:58Z",
      "date_modified": "2026-04-26T12:38:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/raging-conchfly/",
      "url": "https://waylonwalker.com/shots/raging-conchfly/",
      "title": "Raging Conchfly",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/f763f4c9-ed45-49c6-9446-83027152d7d3.mp4\" class=\"glightbox-link\" aria-label=\"Raging Conchfly\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f763f4c9-ed45-49c6-9446-83027152d7d3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"http://dropper.waylonwalker.com/file/f763f4c9-ed45-49c6-9446-83027152d7d3.mp4\" type=\"video/mp4\"\u003eRaging Conchfly\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eRaging Conchfly\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Raging Conchfly](http://dropper.waylonwalker.com/file/f763f4c9-ed45-49c6-9446-83027152d7d3.mp4)\n\n\u003e Raging Conchfly\n",
      "summary": "Raging Conchfly",
      "image": "http://dropper.waylonwalker.com/file/f763f4c9-ed45-49c6-9446-83027152d7d3.mp4",
      "date_published": "2026-04-26T11:57:26Z",
      "date_modified": "2026-04-26T11:57:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-55/",
      "url": "https://waylonwalker.com/ping-55/",
      "title": "approve rm",
      "content_html": "\u003cp\u003eHot take, if you are unwilling to approve rm you should rethink\nyour workflow, \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e state, or backups.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis is meant for normal project work with an agent working in\nthe context of a single project, with directory level access\nto the project.\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\nHot take, if you are unwilling to approve rm you should rethink\nyour workflow, git state, or backups.\n\n!!! Note\n\n    This is meant for normal project work with an agent working in\n    the context of a single project, with directory level access\n    to the project.\n",
      "summary": "Hot take, if you are unwilling to approve rm you should rethink your workflow, git state, or backups.",
      "date_published": "2026-04-21T12:17:22Z",
      "date_modified": "2026-04-21T12:17:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-54/",
      "url": "https://waylonwalker.com/ping-54/",
      "title": "Ping 54",
      "content_html": "\u003cp\u003eI’m regressing back to boomer ai for more plan mode style prompting at home…\nIt does a decent job at ingesting a repo and coming up with plans before I\nstart spending precious tokens.\u003c/p\u003e\n",
      "content_text": "\nI'm regressing back to boomer ai for more plan mode style prompting at home...\nIt does a decent job at ingesting a repo and coming up with plans before I\nstart spending precious tokens.\n",
      "summary": "I'm regressing back to boomer ai for more plan mode style prompting at home... It does a decent job at ingesting a repo and coming up with plans before I...",
      "date_published": "2026-04-19T09:54:48Z",
      "date_modified": "2026-04-19T09:54:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-53/",
      "url": "https://waylonwalker.com/ping-53/",
      "title": "Tokens Just don't go as far as they used to",
      "content_html": "\u003cp\u003eNot sure if this is simply the flavor of the month, or a shift in gpt5.4\nbeing super subsidized on release and now that we have gpt5.4-mini-fast out\nthey have shifted, but I’m burning through half of my $20 gippity sub in a\nday with hobby level use.  Second week in a row its burning so fast.\u003c/p\u003e\n",
      "content_text": "\nNot sure if this is simply the flavor of the month, or a shift in gpt5.4\nbeing super subsidized on release and now that we have gpt5.4-mini-fast out\nthey have shifted, but I'm burning through half of my $20 gippity sub in a\nday with hobby level use.  Second week in a row its burning so fast.\n",
      "summary": "Not sure if this is simply the flavor of the month, or a shift in gpt5.4 being super subsidized on release and now that we have gpt5.4-mini-fast out they...",
      "date_published": "2026-04-18T12:17:22Z",
      "date_modified": "2026-04-18T12:17:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/stow-local-ignore/",
      "url": "https://waylonwalker.com/stow-local-ignore/",
      "title": "stow local ignore",
      "content_html": "\u003cp\u003eStow comes with a local and global ignore list that you can use to ignore\ncertain files or directories.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you put Perl regular expressions, one per line, in a .stow-local-ignore\nfile within any top level package directory, in which case any file or\ndirectory within that package matching any of these regular expressions will\nbe ignored. In the absence of this package-specific ignore list, Stow will\ninstead use the contents of ~/.stow-global-ignore, if it exists. If neither\nthe package-local or global ignore list exist, Stow will use its own built-in\ndefault ignore list, which serves as a useful example of the format of these\nignore list files:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eExample given from the docs\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRCS\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.+,v\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCVS\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.\\#.+       # CVS conflict files / emacs lock files\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.cvsignore\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.svn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e_darcs\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.hg\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.gitignore\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\.gitmodules\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.+~          # emacs backup files\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\\#.*\\#       # emacs autosave files\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e^/README.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e^/LICENSE.*\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e^/COPYING\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"reference\"\u003eReference \u003ca href=\"#reference\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.gnu.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.gnu.org.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nStow comes with a local and global ignore list that you can use to ignore\ncertain files or directories.\n\n\n\u003e If you put Perl regular expressions, one per line, in a .stow-local-ignore\n\u003e file within any top level package directory, in which case any file or\n\u003e directory within that package matching any of these regular expressions will\n\u003e be ignored. In the absence of this package-specific ignore list, Stow will\n\u003e instead use the contents of ~/.stow-global-ignore, if it exists. If neither\n\u003e the package-local or global ignore list exist, Stow will use its own built-in\n\u003e default ignore list, which serves as a useful example of the format of these\n\u003e ignore list files:\n\nExample given from the docs\n\n``` text\nRCS\n.+,v\n\nCVS\n\\.\\#.+       # CVS conflict files / emacs lock files\n\\.cvsignore\n\n\\.svn\n_darcs\n\\.hg\n\n\\.git\n\\.gitignore\n\\.gitmodules\n\n.+~          # emacs backup files\n\\#.*\\#       # emacs autosave files\n\n^/README.*\n^/LICENSE.*\n^/COPYING\n```\n\n\n## Reference\n\nhttps://www.gnu.org/software/stow/manual/html_node/Types-And-Syntax-Of-Ignore-Lists.html\n",
      "summary": "Stow comes with a local and global ignore list that you can use to ignore certain files or directories.",
      "date_published": "2026-04-18T10:36:00Z",
      "date_modified": "2026-04-18T10:36:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-52/",
      "url": "https://waylonwalker.com/ping-52/",
      "title": "Ping 52",
      "content_html": "\u003cp\u003eIs it just me or are the agents not behaving today?\u003c/p\u003e\n",
      "content_text": "\nIs it just me or are the agents not behaving today?\n",
      "summary": "Is it just me or are the agents not behaving today?",
      "date_published": "2026-04-17T21:19:58Z",
      "date_modified": "2026-04-17T21:19:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-980/",
      "url": "https://waylonwalker.com/thought-980/",
      "title": "💭 \"Am I Crazy?\" [Wading Through AI - Episode 3]",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Sp1EmFRDquA\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eCasey had an interesting point here.  I think demitri came back with some sense of sanity that its just not how corporations look at employee cost, but I still thought it was a head scratcher.\u003c/p\u003e\n\u003cp\u003eRoughly translated not quoted\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf the sellers of ai are telling you that your developers are going to be 10x productive, why are they only spending half their salary in tokens?  Why not 9x?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Sp1EmFRDquA\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nCasey had an interesting point here.  I think demitri came back with some sense of sanity that its just not how corporations look at employee cost, but I still thought it was a head scratcher.  \n\nRoughly translated not quoted\n\n\u003e If the sellers of ai are telling you that your developers are going to be 10x productive, why are they only spending half their salary in tokens?  Why not 9x?\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=Sp1EmFRDquA",
      "date_published": "2026-04-16T21:10:02Z",
      "date_modified": "2026-04-16T21:10:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-50-a/",
      "url": "https://waylonwalker.com/ping-50-a/",
      "title": "Ping 50 A",
      "content_html": "\u003cp\u003eI wrote code by hand today… I was out of tokens\u003c/p\u003e\n",
      "content_text": "\nI wrote code by hand today... I was out of tokens\n",
      "summary": "I wrote code by hand today... I was out of tokens",
      "date_published": "2026-04-15T21:11:58Z",
      "date_modified": "2026-04-15T21:11:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-979/",
      "url": "https://waylonwalker.com/thought-979/",
      "title": "💭 A love letter to Pi | Lucas Meijer",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"fdbXNWkpPMY\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI hate how he called out terminal user interfaces as shit… then proved web interfaces to be superior.  Damn him.  I love working from my terminal, but having ai prove itself through \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e reports including video, image, metrics, charts, and text is goated.  Rethinking yourself has the bottleneck not the orchestrator feels real.  Validating the work is hard, theres a shift right now and everyone is trying to figure it out.  Lucas’s technique is a little bit of be lazy and tell it to prove itself to you, so as you juggle your 15 agents you have a nice report to read.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"fdbXNWkpPMY\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI hate how he called out terminal user interfaces as shit... then proved web interfaces to be superior.  Damn him.  I love working from my terminal, but having ai prove itself through html reports including video, image, metrics, charts, and text is goated.  Rethinking yourself has the bottleneck not the orchestrator feels real.  Validating the work is hard, theres a shift right now and everyone is trying to figure it out.  Lucas's technique is a little bit of be lazy and tell it to prove itself to you, so as you juggle your 15 agents you have a nice report to read.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=fdbXNWkpPMY",
      "date_published": "2026-04-15T16:12:33Z",
      "date_modified": "2026-04-15T16:12:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-978/",
      "url": "https://waylonwalker.com/thought-978/",
      "title": "💭 How Claude Code’s Creator Starts EVERY Project - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"KWrsLqnB6vA\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a really good guide, with quite a few good nuggets.  I need to try deleting my AGENTS.md and rebuilding it from scratch more often.  I liked how he talked about having agents prove their work and tell them up front how they will be judged. What I didn’t care for so much was the feeling that a lot of the rules go in markdown, thats not a rule, thats a suggestion.  Rules should be deterministic.  They should be tests and linters that ensure they are followed.  Suggestions are good, but dont trust the agents to always follow them.  And don’t trust that they wont change your rules, keep them honest.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"KWrsLqnB6vA\" title=\"YouTube video\" playlabel=\"Play: YouTube video\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is a really good guide, with quite a few good nuggets.  I need to try deleting my AGENTS.md and rebuilding it from scratch more often.  I liked how he talked about having agents prove their work and tell them up front how they will be judged. What I didn't care for so much was the feeling that a lot of the rules go in markdown, thats not a rule, thats a suggestion.  Rules should be deterministic.  They should be tests and linters that ensure they are followed.  Suggestions are good, but dont trust the agents to always follow them.  And don't trust that they wont change your rules, keep them honest.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=KWrsLqnB6vA",
      "date_published": "2026-04-15T16:07:26Z",
      "date_modified": "2026-04-15T16:07:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-977/",
      "url": "https://waylonwalker.com/thought-977/",
      "title": "💭 POV: Growing up as a Millennial be like 🤣 AC:@mikemancusi #mil...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.youtube.com/shorts/qH3KH-q_tGE\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" 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\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eyoutube.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFeeling this today, feels like everything continues to get worse.  Trying to be more positive, and its hard.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.youtube.com/shorts/qH3KH-q_tGE\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eyoutube.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFeeling this today, feels like everything continues to get worse.  Trying to be more positive, and its hard.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/qH3KH-q_tGE",
      "date_published": "2026-04-15T16:02:46Z",
      "date_modified": "2026-04-15T16:02:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "random",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-976/",
      "url": "https://waylonwalker.com/thought-976/",
      "title": "💭 Write It First, Then Let AI Drive - Kenneth Reitz",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://kennethreitz.org/essays/2026-04-12-write_it_first_then_let_ai_drive\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://kennethreitz.org/og-image/essays/2026-04-12-write_it_first_then_let_ai_drive.png\" alt=\"Write It First, Then Let AI Drive — There\u0026#39;s a thing that happens when you start using AI coding tools seriously. You assume the best workflow is obvious: let AI generate the first draft, then...\" loading=\"lazy\"/ data-glightbox=\"description: Write It First, Then Let AI Drive — There\u0026#39;s a thing that happens when you start using AI coding tools seriously. You assume the best workflow is obvious: let AI generate the first draft, then...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWrite It First, Then Let AI Drive\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThere\u0026#39;s a thing that happens when you start using AI coding tools seriously. You assume the best workflow is obvious: let AI generate the first draft, then...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eKenneth Reitz · kennethreitz.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting take by Kenneth Reitz.  Not quite sure how I feel about it anymore.  It kinda hurts, but I’m not sure if code aesthetics matter as much as the product anymore.  I cared when I was the one editing, but at this point I’m not doing a lot of edits by hand.  Do these aesthetics affect the final products that users use, Not sure.  AI makes me sad.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://kennethreitz.org/essays/2026-04-12-write_it_first_then_let_ai_drive\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://kennethreitz.org/og-image/essays/2026-04-12-write_it_first_then_let_ai_drive.png\" alt=\"Write It First, Then Let AI Drive — There\u0026#39;s a thing that happens when you start using AI coding tools seriously. You assume the best workflow is obvious: let AI generate the first draft, then...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWrite It First, Then Let AI Drive\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThere\u0026#39;s a thing that happens when you start using AI coding tools seriously. You assume the best workflow is obvious: let AI generate the first draft, then...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eKenneth Reitz \u0026middot; kennethreitz.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting take by Kenneth Reitz.  Not quite sure how I feel about it anymore.  It kinda hurts, but I'm not sure if code aesthetics matter as much as the product anymore.  I cared when I was the one editing, but at this point I'm not doing a lot of edits by hand.  Do these aesthetics affect the final products that users use, Not sure.  AI makes me sad.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://kennethreitz.org/essays/2026-04-12-write_first_let_drive",
      "date_published": "2026-04-14T20:05:11Z",
      "date_modified": "2026-04-14T20:05:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-50/",
      "url": "https://waylonwalker.com/ping-50/",
      "title": "Prove Yourself Agent",
      "content_html": "\u003cp\u003eAsk your agents to prove their work. Include it in the initial\nprompt, not later.\u003c/p\u003e\n",
      "content_text": "\nAsk your agents to prove their work. Include it in the initial\nprompt, not later.\n",
      "summary": "Ask your agents to prove their work. Include it in the initial prompt, not later.",
      "date_published": "2026-04-14T16:12:04Z",
      "date_modified": "2026-04-14T16:12:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-975/",
      "url": "https://waylonwalker.com/thought-975/",
      "title": "💭 I am slowly coming around to AI assisted programming.",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ThePrimeagen/status/2043861800819761382\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIf agents make prime a bit faster, what does that mean for the rest of us mortals?\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ThePrimeagen/status/2043861800819761382\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIf agents make prime a bit faster, what does that mean for the rest of us mortals?\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/ThePrimeagen/status/2043861800819761382",
      "date_published": "2026-04-14T15:17:09Z",
      "date_modified": "2026-04-14T15:17:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-974/",
      "url": "https://waylonwalker.com/thought-974/",
      "title": "💭 AIs aren’t good rule followers",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/unclebobmartin/status/2044065822067282396\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve gotta agree with bob on this one, the first thing I did to my biggest brownfield project I wanted to use agents on BEFORE they did work was a hardened pre-commit.yaml, ci, hardened type checking and linting. SECOND get rid of bad inconsistent patterns, let them replicate consistency, force them to pass checks.  Agents will follow all of your markdown suggestions \u003cem\u003emost\u003c/em\u003e of the time, enough for you to become complacent if you let it.  They are goal seeking, if you put them to a task you thought was possible that is not given your constraints, they will try to find a way given enough tokens.  I dont see this ever changing, its one thing that makes them great, it just needs to be kept in check.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/unclebobmartin/status/2044065822067282396\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI've gotta agree with bob on this one, the first thing I did to my biggest brownfield project I wanted to use agents on BEFORE they did work was a hardened pre-commit.yaml, ci, hardened type checking and linting. SECOND get rid of bad inconsistent patterns, let them replicate consistency, force them to pass checks.  Agents will follow all of your markdown suggestions _most_ of the time, enough for you to become complacent if you let it.  They are goal seeking, if you put them to a task you thought was possible that is not given your constraints, they will try to find a way given enough tokens.  I dont see this ever changing, its one thing that makes them great, it just needs to be kept in check.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/unclebobmartin/status/2044065822067282396",
      "date_published": "2026-04-14T15:16:11Z",
      "date_modified": "2026-04-14T15:16:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-973/",
      "url": "https://waylonwalker.com/thought-973/",
      "title": "💭 A quote from Steve Yegge",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Apr/13/steve-yegge/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSteve Yegge\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSteve Yegge: I was chatting with my buddy at Google, who\u0026#39;s been a tech director there for about 20 years, about their AI adoption. Craziest convo I\u0026#39;ve had all year. …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ebehind, yet positioned to completely dominate this race by hitting it with some sense.  Making trends in what looks like longevity in the race that is not subsidising to simply get users, but to get by until they figure out how to 100x reduce the cost to a reasonable level.  They feel like the guy sitting in the back with nothing big or flashy to say that is going to drop the hammer on their competition that overstretched itself taking on too much debt because it was necessary to change the game.  There might be something to having a mix of hipsters, boomers, and luddites all trying to balance each other out.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Apr/13/steve-yegge/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSteve Yegge\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSteve Yegge: I was chatting with my buddy at Google, who\u0026#39;s been a tech director there for about 20 years, about their AI adoption. Craziest convo I\u0026#39;ve had all year. …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nbehind, yet positioned to completely dominate this race by hitting it with some sense.  Making trends in what looks like longevity in the race that is not subsidising to simply get users, but to get by until they figure out how to 100x reduce the cost to a reasonable level.  They feel like the guy sitting in the back with nothing big or flashy to say that is going to drop the hammer on their competition that overstretched itself taking on too much debt because it was necessary to change the game.  There might be something to having a mix of hipsters, boomers, and luddites all trying to balance each other out.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2026/Apr/13/steve-yegge/#atom-everything",
      "date_published": "2026-04-13T21:10:23Z",
      "date_modified": "2026-04-13T21:10:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/anthropic-mythos/",
      "url": "https://waylonwalker.com/anthropic-mythos/",
      "title": "Anthropic Mythos",
      "content_html": "\u003cp\u003eAn ai model created by Anthropic was announced as a closed preview on April 7,\n2026 for critical security research and evaluation with its close partners with\ncritical software such as operating systems and browsers.  Anthropic claims\nthat mythos is able to reason through so much more context that any model ever\nbefore.  This enables it to find bugs that are 25 years old in the BSD,\nconsidered one of the most secure operating systems we have.  Once it finds\nthese zero day bugs never discovered before its able to use them together in\nmalicious ways never expected.  In ways the world is not ready for.  At the\ntime of writing these are claims without proof.  It remains scary to know the\npotential this has and that there is only a few companies with this potential\nthat will gatekeep who gets access.\u003c/p\u003e\n",
      "content_text": "\nAn ai model created by Anthropic was announced as a closed preview on April 7,\n2026 for critical security research and evaluation with its close partners with\ncritical software such as operating systems and browsers.  Anthropic claims\nthat mythos is able to reason through so much more context that any model ever\nbefore.  This enables it to find bugs that are 25 years old in the BSD,\nconsidered one of the most secure operating systems we have.  Once it finds\nthese zero day bugs never discovered before its able to use them together in\nmalicious ways never expected.  In ways the world is not ready for.  At the\ntime of writing these are claims without proof.  It remains scary to know the\npotential this has and that there is only a few companies with this potential\nthat will gatekeep who gets access.\n",
      "summary": "An ai model created by Anthropic was announced as a closed preview on April 7, 2026 for critical security research and evaluation with its close partners...",
      "date_published": "2026-04-13T16:18:15Z",
      "date_modified": "2026-04-13T16:18:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "model"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-49/",
      "url": "https://waylonwalker.com/ping-49/",
      "title": "What happens when the 0 days are exposed?",
      "content_html": "\u003cp\u003eWhat’s going to happen to all of our software when \u003ca href=\"/anthropic-mythos/\" class=\"glossary-term\" title=\"An ai model created by Anthropic was announced as a closed preview on April 7, 2026 for critical security research and evaluation with its close partners...\"\u003eAnthropic Mythos\u003c/a\u003e finds all\nof the 0 day vulnerabilities?  Will everything depending on the bugs break?\nWill it be possible to fix them cleanly?  Will we all get pwnd when the bad\nactors get access to them before everything is patched?  Will LTS Operating\nSystems Die?\u003c/p\u003e\n",
      "content_text": "\nWhat's going to happen to all of our software when Anthropic Mythos finds all\nof the 0 day vulnerabilities?  Will everything depending on the bugs break?\nWill it be possible to fix them cleanly?  Will we all get pwnd when the bad\nactors get access to them before everything is patched?  Will LTS Operating\nSystems Die?\n",
      "summary": "What's going to happen to all of our software when Anthropic Mythos finds all of the 0 day vulnerabilities? Will everything depending on the bugs break? Will...",
      "date_published": "2026-04-13T16:12:04Z",
      "date_modified": "2026-04-13T16:12:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-972/",
      "url": "https://waylonwalker.com/thought-972/",
      "title": "💭 How does Claude Code *actually* work? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"I82j7AzMU80\" title=\"How does Claude Code *actually* work?\" playlabel=\"Play: How does Claude Code *actually* work?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e5 star video, if you are going to watch one video to understand how harnesses and agents work, this is it.  This really had my gears spinning on what tools do for agents and how big of a difference they make in their ability to manage context efficiently and accurately create changes.  It’s crazy how good bash works, and that gives the agents the ability to do just about everything, but it could be better.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"I82j7AzMU80\" title=\"How does Claude Code *actually* work?\" playlabel=\"Play: How does Claude Code *actually* work?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n5 star video, if you are going to watch one video to understand how harnesses and agents work, this is it.  This really had my gears spinning on what tools do for agents and how big of a difference they make in their ability to manage context efficiently and accurately create changes.  It's crazy how good bash works, and that gives the agents the ability to do just about everything, but it could be better.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=I82j7AzMU80",
      "date_published": "2026-04-13T10:15:26Z",
      "date_modified": "2026-04-13T10:15:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/vintage-nectar/",
      "url": "https://waylonwalker.com/shots/vintage-nectar/",
      "title": "Vintage Nector Boss Arena",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/cba159af-44a9-4db8-82e8-a2117236c916.mp4\" class=\"glightbox-link\" aria-label=\"Vintage Nector Full\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/cba159af-44a9-4db8-82e8-a2117236c916.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/cba159af-44a9-4db8-82e8-a2117236c916.mp4\" type=\"video/mp4\"\u003eVintage Nector Full\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCreige has an ant problem in his cellar where he keeps the most valuable\nnectar.  As always I took a bunch of unnecessary hits, but made it out of\nthis one in one shot with a couple of moments taken for heal.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Vintage Nector Full](https://dropper.waylonwalker.com/file/cba159af-44a9-4db8-82e8-a2117236c916.mp4)\n\n\u003e Creige has an ant problem in his cellar where he keeps the most valuable\n\u003e nectar.  As always I took a bunch of unnecessary hits, but made it out of\n\u003e this one in one shot with a couple of moments taken for heal.\n",
      "summary": "Clearing out Creige's Cellar for the Vintage Nectar.",
      "image": "https://dropper.waylonwalker.com/file/cba159af-44a9-4db8-82e8-a2117236c916.mp4",
      "date_published": "2026-04-12T21:21:12Z",
      "date_modified": "2026-04-12T21:21:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/horn-fragment-full/",
      "url": "https://waylonwalker.com/shots/horn-fragment-full/",
      "title": "Horn Fragment Full Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/382288fe-b208-4eae-8895-9ec06171508d.mp4\" class=\"glightbox-link\" aria-label=\"Horn Fragment Full\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/382288fe-b208-4eae-8895-9ec06171508d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/382288fe-b208-4eae-8895-9ec06171508d.mp4\" type=\"video/mp4\"\u003eHorn Fragment Full\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe second Savage Beastfly in Far Fields was admittedly took me way too many\ntries, for a boss that feels like it should be a one shot guy I bet it took\nme 15 tries.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Horn Fragment Full](https://dropper.waylonwalker.com/file/382288fe-b208-4eae-8895-9ec06171508d.mp4)\n\n\u003e The second Savage Beastfly in Far Fields was admittedly took me way too many\n\u003e tries, for a boss that feels like it should be a one shot guy I bet it took\n\u003e me 15 tries.\n",
      "summary": "Fighting the second Savage Beastfly in Far Fields",
      "image": "https://dropper.waylonwalker.com/file/382288fe-b208-4eae-8895-9ec06171508d.mp4",
      "date_published": "2026-04-12T21:18:01Z",
      "date_modified": "2026-04-12T21:18:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-971/",
      "url": "https://waylonwalker.com/thought-971/",
      "title": "💭 Artemis II Lunar Flyby",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.nasa.gov/gallery/lunar-flyby/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://images-assets.nasa.gov/image/art002e015231/art002e015231~large.jpg\" alt=\"Artemis II Lunar Flyby - NASA — The first flyby images of the Moon captured by NASA’s Artemis II astronauts during their historic test flight reveal regions of the Moon\u0026#39;s far side, as well as an in-space solar eclipse. Released April 7, 2026, NASA astronauts Reid Wiseman, Victor Glover, and Christina Koch and CSA (Canadian Space Agency) astronaut Jeremy Hansen captured the images during the mission’s seven-hour flyby on April 6, 2026, showing humanity’s return to the Moon’s vicinity.\" loading=\"lazy\"/ data-glightbox=\"description: Artemis II Lunar Flyby - NASA — The first flyby images of the Moon captured by NASA’s Artemis II astronauts during their historic test flight reveal regions of the Moon\u0026#39;s far side, as well as an in-space solar eclipse. Released April 7, 2026, NASA astronauts Reid Wiseman, Victor Glover, and Christina Koch and CSA (Canadian Space Agency) astronaut Jeremy Hansen captured the images during the mission’s seven-hour flyby on April 6, 2026, showing humanity’s return to the Moon’s vicinity.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eArtemis II Lunar Flyby - NASA\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe first flyby images of the Moon captured by NASA’s Artemis II astronauts during their historic test flight reveal regions of the Moon\u0026#39;s far side, as well as an in-space solar eclipse. Released...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eNASA · nasa.gov\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eOne of the biggest scientific achievement of our lifetime happened this week.  I will forever remember sitting in a Culvers in between theater builds looking through these photos as they came live, looking at them in awe.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/9987010a-a448-472d-9c60-2831b61a1d3a.webp\" class=\"glightbox-link\" aria-label=\"9987010a-a448-472d-9c60-2831b61a1d3a.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/9987010a-a448-472d-9c60-2831b61a1d3a.webp\" alt=\"9987010a-a448-472d-9c60-2831b61a1d3a.webp\"/ data-glightbox=\"description: 9987010a-a448-472d-9c60-2831b61a1d3a.webp\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eOne of the most famous images from the shoot “Setting Earth”\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.nasa.gov/gallery/lunar-flyby/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://images-assets.nasa.gov/image/art002e015231/art002e015231~large.jpg\" alt=\"Artemis II Lunar Flyby - NASA — The first flyby images of the Moon captured by NASA’s Artemis II astronauts during their historic test flight reveal regions of the Moon\u0026#39;s far side, as well as an in-space solar eclipse. Released April 7, 2026, NASA astronauts Reid Wiseman, Victor Glover, and Christina Koch and CSA (Canadian Space Agency) astronaut Jeremy Hansen captured the images during the mission’s seven-hour flyby on April 6, 2026, showing humanity’s return to the Moon’s vicinity.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eArtemis II Lunar Flyby - NASA\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe first flyby images of the Moon captured by NASA’s Artemis II astronauts during their historic test flight reveal regions of the Moon\u0026#39;s far side, as well as an in-space solar eclipse. Released...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eNASA \u0026middot; nasa.gov\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nOne of the biggest scientific achievement of our lifetime happened this week.  I will forever remember sitting in a Culvers in between theater builds looking through these photos as they came live, looking at them in awe.\n\n![9987010a-a448-472d-9c60-2831b61a1d3a.webp](https://dropper.waylonwalker.com/file/9987010a-a448-472d-9c60-2831b61a1d3a.webp)\nOne of the most famous images from the shoot \"Setting Earth\"\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.nasa.gov/gallery/lunar-flyby/",
      "date_published": "2026-04-09T21:53:49Z",
      "date_modified": "2026-04-09T21:53:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "science",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-970/",
      "url": "https://waylonwalker.com/thought-970/",
      "title": "💭 Explaining the Most Important Artemis II Photos - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"oaXRREHVkHo\" title=\"Explaining the Most Important Artemis II Photos\" playlabel=\"Play: Explaining the Most Important Artemis II Photos\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat an amazing set of photos created by the Artemis II crew accompanying a fantastic breakdown by Hank Green.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/0b53a4ed-924e-42b5-84f4-51c189f60801.webp\" class=\"glightbox-link\" aria-label=\"0b53a4ed-924e-42b5-84f4-51c189f60801.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/0b53a4ed-924e-42b5-84f4-51c189f60801.webp\" alt=\"0b53a4ed-924e-42b5-84f4-51c189f60801.webp\"/ data-glightbox=\"description: 0b53a4ed-924e-42b5-84f4-51c189f60801.webp\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI like this one, as its probably one of the ones not shred a ton\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cp\u003eWhole gallery is worth looking at \u003ca href=\"https://www.nasa.gov/gallery/lunar-flyby/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.nasa.gov.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.nasa.gov.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.nasa.gov/gallery/lunar-flyby/\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"oaXRREHVkHo\" title=\"Explaining the Most Important Artemis II Photos\" playlabel=\"Play: Explaining the Most Important Artemis II Photos\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWhat an amazing set of photos created by the Artemis II crew accompanying a fantastic breakdown by Hank Green.\n\n![0b53a4ed-924e-42b5-84f4-51c189f60801.webp](https://dropper.waylonwalker.com/file/0b53a4ed-924e-42b5-84f4-51c189f60801.webp)\nI like this one, as its probably one of the ones not shred a ton\n\nWhole gallery is worth looking at https://www.nasa.gov/gallery/lunar-flyby/\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=oaXRREHVkHo",
      "date_published": "2026-04-09T21:44:47Z",
      "date_modified": "2026-04-09T21:44:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "science",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-48/",
      "url": "https://waylonwalker.com/ping-48/",
      "title": "Ping 48",
      "content_text": "\n",
      "date_published": "2026-04-08T16:12:32Z",
      "date_modified": "2026-04-08T16:12:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-969/",
      "url": "https://waylonwalker.com/thought-969/",
      "title": "💭 An AI state of the union: We’ve passed the inflection point \u0026 ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"wc8FBhQtdsA\" title=\"An AI state of the union: We’ve passed the inflection point \u0026amp; dark factories are coming\" playlabel=\"Play: An AI state of the union: We’ve passed the inflection point \u0026amp; dark factories are coming\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eA really interesting long form interview with @simonwillison.net.  If you follow him closely most of it is probably not new, but I found some interesting nuggets.\u003c/p\u003e\n\u003cp\u003eSimon is writing most of his code from his phone these days using anthropic hosted platform.  He mentioned that a lot of security risks go away when you don’t put secrets on the platform and you let them take the risk of running ai written code with ai chosen supply chain.\u003c/p\u003e\n\u003cp\u003eHe talked about the Pelican Riding a Bike benchmark for quite awhile.  He was surprised at how well of a proxy it is for how capable a model is at just about everything.  He also said that when he runs the benchmark he also runs half a dozen others that he’s never talked about so that He could see if they were to train a model specific to his benchmark he could catch them, but it seems they had caught on and if they were they seem that they would already be doing it on all of his others anyways.\u003c/p\u003e\n\u003cp\u003eTDD is incredibly boring for humans, it strips so much creativity and joy from the process.  Who cares if agents are bored they do better when doing TDD.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"wc8FBhQtdsA\" title=\"An AI state of the union: We’ve passed the inflection point \u0026amp; dark factories are coming\" playlabel=\"Play: An AI state of the union: We’ve passed the inflection point \u0026amp; dark factories are coming\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nA really interesting long form interview with @simonwillison.net.  If you follow him closely most of it is probably not new, but I found some interesting nuggets.\n\nSimon is writing most of his code from his phone these days using anthropic hosted platform.  He mentioned that a lot of security risks go away when you don't put secrets on the platform and you let them take the risk of running ai written code with ai chosen supply chain.\n\nHe talked about the Pelican Riding a Bike benchmark for quite awhile.  He was surprised at how well of a proxy it is for how capable a model is at just about everything.  He also said that when he runs the benchmark he also runs half a dozen others that he's never talked about so that He could see if they were to train a model specific to his benchmark he could catch them, but it seems they had caught on and if they were they seem that they would already be doing it on all of his others anyways.\n\nTDD is incredibly boring for humans, it strips so much creativity and joy from the process.  Who cares if agents are bored they do better when doing TDD.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=wc8FBhQtdsA",
      "date_published": "2026-04-08T09:29:40Z",
      "date_modified": "2026-04-08T09:29:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-968/",
      "url": "https://waylonwalker.com/thought-968/",
      "title": "💭 DDR5 Prices are Crashing... Kind Of. - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"0jCMF7OeH9w\" title=\"DDR5 Prices are Crashing... Kind Of.\" playlabel=\"Play: DDR5 Prices are Crashing... Kind Of.\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eTHIS is the future of \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e, excited to see someone who knows so much more about hardware than I do get excited about this.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f69c86b9-ab79-46ad-9ef0-4d794544e943.webp\" class=\"glightbox-link\" aria-label=\"f69c86b9-ab79-46ad-9ef0-4d794544e943.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f69c86b9-ab79-46ad-9ef0-4d794544e943.webp\" alt=\"f69c86b9-ab79-46ad-9ef0-4d794544e943.webp\"/ data-glightbox=\"description: f69c86b9-ab79-46ad-9ef0-4d794544e943.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"0jCMF7OeH9w\" title=\"DDR5 Prices are Crashing... Kind Of.\" playlabel=\"Play: DDR5 Prices are Crashing... Kind Of.\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nTHIS is the future of homelab, excited to see someone who knows so much more about hardware than I do get excited about this.\n\n![f69c86b9-ab79-46ad-9ef0-4d794544e943.webp](https://dropper.waylonwalker.com/file/f69c86b9-ab79-46ad-9ef0-4d794544e943.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=0jCMF7OeH9w\u0026t=328s",
      "date_published": "2026-04-08T08:41:16Z",
      "date_modified": "2026-04-08T08:41:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-967/",
      "url": "https://waylonwalker.com/thought-967/",
      "title": "💭 @seldo.com on Bluesky",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/seldo.com/post/3miybjol76p2r\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:4w3lx5jmokfvihilz2q562ev/bafkreic3gypsfet4fdphv4pp3h3fbrbwuu54bu42ks4qs6h754syqo3fxi\" alt=\"Laurie Voss (@seldo.com) — Project Glasswing is a glimpse at an oncoming future in which agents do things humans could never have accomplished and the results are handled by other agents faster than humans could react and we are just spectators.\" loading=\"lazy\"/ data-glightbox=\"description: Laurie Voss (@seldo.com) — Project Glasswing is a glimpse at an oncoming future in which agents do things humans could never have accomplished and the results are handled by other agents faster than humans could react and we are just spectators.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLaurie Voss (@seldo.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eProject Glasswing is a glimpse at an oncoming future in which agents do things humans could never have accomplished and the results are handled by other agents faster than humans could react and we...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIs Glasswing the next inflection point\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp\" class=\"glightbox-link\" aria-label=\"00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp\" alt=\"00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp\"/ data-glightbox=\"description: 00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/seldo.com/post/3miybjol76p2r\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:4w3lx5jmokfvihilz2q562ev/bafkreic3gypsfet4fdphv4pp3h3fbrbwuu54bu42ks4qs6h754syqo3fxi\" alt=\"Laurie Voss (@seldo.com) — Project Glasswing is a glimpse at an oncoming future in which agents do things humans could never have accomplished and the results are handled by other agents faster than humans could react and we are just spectators.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLaurie Voss (@seldo.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eProject Glasswing is a glimpse at an oncoming future in which agents do things humans could never have accomplished and the results are handled by other agents faster than humans could react and we...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIs Glasswing the next inflection point\n\n\n![00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp](https://dropper.waylonwalker.com/file/00bc13be-32bd-4410-b0c4-2ecc0f2f6b95.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/seldo.com/post/3miybjol76p2r",
      "date_published": "2026-04-08T07:31:34Z",
      "date_modified": "2026-04-08T07:31:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/gaming-keeb-complete/",
      "url": "https://waylonwalker.com/shots/gaming-keeb-complete/",
      "title": "3x3-3 Gaming Keeb Complete",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/32510980-2e53-4294-9198-c2fc5a6fb96a.webp\" class=\"glightbox-link\" aria-label=\"3x3-3 gaming keeb complete\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/32510980-2e53-4294-9198-c2fc5a6fb96a.webp\" alt=\"3x3-3 gaming keeb complete\"/ data-glightbox=\"description: 3x3-3 gaming keeb complete\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003efreshly built gaming keyboard for @wyatt sitting on my desk\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![3x3-3 gaming keeb complete](http://dropper.waylonwalker.com/file/32510980-2e53-4294-9198-c2fc5a6fb96a.webp)\n\n\u003e freshly built gaming keyboard for @wyatt sitting on my desk\n\n",
      "summary": "freshly built gaming keyboard for @wyatt sitting on my desk",
      "image": "http://dropper.waylonwalker.com/file/32510980-2e53-4294-9198-c2fc5a6fb96a.webp",
      "date_published": "2026-04-05T19:09:05Z",
      "date_modified": "2026-04-05T19:09:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-966/",
      "url": "https://waylonwalker.com/thought-966/",
      "title": "💭 BumpMesh by CNC Kitchen",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bumpmesh.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://bumpmesh.com/assets/preview.jpg\" alt=\"BumpMesh by CNC Kitchen — Add displacement textures to STL, OBJ, and 3MF models directly in your browser. Preview, mask, bake, and export printable textured meshes locally.\" loading=\"lazy\"/ data-glightbox=\"description: BumpMesh by CNC Kitchen — Add displacement textures to STL, OBJ, and 3MF models directly in your browser. Preview, mask, bake, and export printable textured meshes locally.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBumpMesh by CNC Kitchen\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAdd displacement textures to STL, OBJ, and 3MF models directly in your browser. Preview, mask, bake, and export printable textured meshes locally.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBumpMesh · bumpmesh.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolutely sick texture app from cnc kitchen.  Like him I’ve spent a bunch of time attempting and failing to learn blender, I’m so glad someone else vibe coded out such a good app that can \u003ccode\u003ejust\u003c/code\u003e add texture to stls with basic masks and is the very basics of what you would want to add to 3d prints to make them interesting, I’m excited to use this for some real projects.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp\" class=\"glightbox-link\" aria-label=\"d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp\" alt=\"d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp\"/ data-glightbox=\"description: d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e10dddf6-0f2e-498f-bef7-81901afced7b.webp\" class=\"glightbox-link\" aria-label=\"e10dddf6-0f2e-498f-bef7-81901afced7b.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/e10dddf6-0f2e-498f-bef7-81901afced7b.webp\" alt=\"e10dddf6-0f2e-498f-bef7-81901afced7b.webp\"/ data-glightbox=\"description: e10dddf6-0f2e-498f-bef7-81901afced7b.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bumpmesh.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://bumpmesh.com/assets/preview.jpg\" alt=\"BumpMesh by CNC Kitchen — Add displacement textures to STL, OBJ, and 3MF models directly in your browser. Preview, mask, bake, and export printable textured meshes locally.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBumpMesh by CNC Kitchen\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAdd displacement textures to STL, OBJ, and 3MF models directly in your browser. Preview, mask, bake, and export printable textured meshes locally.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBumpMesh \u0026middot; bumpmesh.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAbsolutely sick texture app from cnc kitchen.  Like him I've spent a bunch of time attempting and failing to learn blender, I'm so glad someone else vibe coded out such a good app that can `just` add texture to stls with basic masks and is the very basics of what you would want to add to 3d prints to make them interesting, I'm excited to use this for some real projects.\n\n![d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp](https://dropper.waylonwalker.com/file/d959e3dc-3fde-410b-acaf-8f0574f68a1a.webp)\n\n![e10dddf6-0f2e-498f-bef7-81901afced7b.webp](https://dropper.waylonwalker.com/file/e10dddf6-0f2e-498f-bef7-81901afced7b.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bumpmesh.com/",
      "date_published": "2026-04-05T10:54:20Z",
      "date_modified": "2026-04-05T10:54:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/wonka-letters/",
      "url": "https://waylonwalker.com/shots/wonka-letters/",
      "title": "Wonka Letters",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e7cfd915-1484-4a29-beb1-16063940bfd6.webp\" class=\"glightbox-link\" aria-label=\"Wonka Letters\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/e7cfd915-1484-4a29-beb1-16063940bfd6.webp\" alt=\"Wonka Letters\"/ data-glightbox=\"description: Wonka Letters\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWonka letters all cut out ready to get some stiffeners and go off for paint.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Wonka Letters](https://dropper.waylonwalker.com/file/e7cfd915-1484-4a29-beb1-16063940bfd6.webp)\n\n\u003e Wonka letters all cut out ready to get some stiffeners and go off for paint.\n\n",
      "summary": "Wonka letters all cut out ready to get some stiffeners and go off for paint.",
      "image": "https://dropper.waylonwalker.com/file/e7cfd915-1484-4a29-beb1-16063940bfd6.webp",
      "date_published": "2026-04-04T10:16:30Z",
      "date_modified": "2026-04-04T10:16:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-46/",
      "url": "https://waylonwalker.com/ping-46/",
      "title": "What is this job anymore",
      "content_html": "\u003cp\u003eThe job of writing code is dying, models are getting better, the average person\nwill have their average features implemented in average ways with no effort by\nagents, the writing is on the wall.  We are still trying to review most of the\ncritical code, this is slowing us down, is it really stopping any bugs or\ngiving us any more familiarity with the product, marginally.\u003c/p\u003e\n\u003cp\u003eThe time is now to grease up your UAT, testing, deployment pipelines. Dont let\nagents delete entire regions.  Review your backup and restore strategy, you do\nhave a DR plan right?\u003c/p\u003e\n\u003cp\u003eThings are changing fast, the best of us are still better than the clankers.\nMost of us have more context than the clankers.  Most of us have more intuition\nof what and where to implement fixes.  Context windows and memory will be\nsolved problems.  Your DR plan, UAT, testinng and QA environments will not come\nfor free, you need to make them, and deeply integrate them into your processes.\u003c/p\u003e\n",
      "content_text": "\nThe job of writing code is dying, models are getting better, the average person\nwill have their average features implemented in average ways with no effort by\nagents, the writing is on the wall.  We are still trying to review most of the\ncritical code, this is slowing us down, is it really stopping any bugs or\ngiving us any more familiarity with the product, marginally.\n\nThe time is now to grease up your UAT, testing, deployment pipelines. Dont let\nagents delete entire regions.  Review your backup and restore strategy, you do\nhave a DR plan right?\n\nThings are changing fast, the best of us are still better than the clankers.\nMost of us have more context than the clankers.  Most of us have more intuition\nof what and where to implement fixes.  Context windows and memory will be\nsolved problems.  Your DR plan, UAT, testinng and QA environments will not come\nfor free, you need to make them, and deeply integrate them into your processes.\n\n",
      "summary": "The job of writing code is dying, models are getting better, the average person will have their average features implemented in average ways with no effort...",
      "date_published": "2026-04-03T20:44:55Z",
      "date_modified": "2026-04-03T20:44:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/hair-whittling-sharp/",
      "url": "https://waylonwalker.com/shots/hair-whittling-sharp/",
      "title": "Hair Whittling Sharp",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/29b8ae31-7c9b-45a7-b950-72bd2f3f6011.webp\" class=\"glightbox-link\" aria-label=\"Hair Whittling Sharp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/29b8ae31-7c9b-45a7-b950-72bd2f3f6011.webp\" alt=\"Hair Whittling Sharp\"/ data-glightbox=\"description: Hair Whittling Sharp\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHair whittling sharp, Do I get my redneck nerd card yet?\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Hair Whittling Sharp](https://dropper.waylonwalker.com/file/29b8ae31-7c9b-45a7-b950-72bd2f3f6011.webp)\n\n\u003e Hair whittling sharp, Do I get my redneck nerd card yet? \n\n",
      "summary": "Hair whittling sharp, Do I get my redneck nerd card yet?",
      "image": "https://dropper.waylonwalker.com/file/29b8ae31-7c9b-45a7-b950-72bd2f3f6011.webp",
      "date_published": "2026-04-03T20:43:11Z",
      "date_modified": "2026-04-03T20:43:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-965/",
      "url": "https://waylonwalker.com/thought-965/",
      "title": "💭 Bush: Tiny Desk Concert - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"lBuHH7WE4yE\" title=\"Bush: Tiny Desk Concert\" playlabel=\"Play: Bush: Tiny Desk Concert\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBush on tiny desk.  Iconic band on an iconic platform.  Will be re-listening to this several times.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp\" class=\"glightbox-link\" aria-label=\"3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp\" alt=\"3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp\"/ data-glightbox=\"description: 3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"lBuHH7WE4yE\" title=\"Bush: Tiny Desk Concert\" playlabel=\"Play: Bush: Tiny Desk Concert\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nBush on tiny desk.  Iconic band on an iconic platform.  Will be re-listening to this several times.\n\n![3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp](https://dropper.waylonwalker.com/file/3b67304c-41cc-4040-b6cd-7e0c16633e3d.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=lBuHH7WE4yE\u0026list=RDlBuHH7WE4yE\u0026start_radio=1",
      "date_published": "2026-04-03T20:23:28Z",
      "date_modified": "2026-04-03T20:23:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "music",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/llama-in-pi-thinks-its-claude/",
      "url": "https://waylonwalker.com/shots/llama-in-pi-thinks-its-claude/",
      "title": "Llama In Pi Thinks Its Claude",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/00d19487-c8c2-490c-84cb-c64e33149be2.webp\" class=\"glightbox-link\" aria-label=\"llama in pi thinks its claude\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/00d19487-c8c2-490c-84cb-c64e33149be2.webp\" alt=\"llama in pi thinks its claude\"/ data-glightbox=\"description: llama in pi thinks its claude\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI just launched ollama picked pi as it asked what harness I wanted to run, and it responded telling me it was claude.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![llama in pi thinks its claude](https://dropper.waylonwalker.com/file/00d19487-c8c2-490c-84cb-c64e33149be2.webp)\n\n\u003e I just launched ollama picked pi as it asked what harness I wanted to run, and it responded telling me it was claude.\n\n",
      "summary": "I just launched ollama picked pi as it asked what harness I wanted to run, and it responded telling me it was claude.",
      "image": "https://dropper.waylonwalker.com/file/00d19487-c8c2-490c-84cb-c64e33149be2.webp",
      "date_published": "2026-04-03T08:37:18Z",
      "date_modified": "2026-04-03T08:37:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-47/",
      "url": "https://waylonwalker.com/ping-47/",
      "title": "Ping 47",
      "content_text": "\n",
      "date_published": "2026-04-02T21:33:20Z",
      "date_modified": "2026-04-02T21:33:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/ty-0.0.26/",
      "url": "https://waylonwalker.com/shots/ty-0.0.26/",
      "title": "Ty 0.0.26",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/26f075a3-4941-4ac8-877e-7dda777579db.webp\" class=\"glightbox-link\" aria-label=\"ty 0.0.26\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/26f075a3-4941-4ac8-877e-7dda777579db.webp\" alt=\"ty 0.0.26\"/ data-glightbox=\"description: ty 0.0.26\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ety 0.0.26 was released on 3/26/26, nice work planning.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![ty 0.0.26](https://dropper.waylonwalker.com/file/26f075a3-4941-4ac8-877e-7dda777579db.webp)\n\n\u003e ty 0.0.26 was released on 3/26/26, nice work planning.\n\n",
      "summary": "ty 0.0.26 was released on 3/26/26, nice work planning.",
      "image": "https://dropper.waylonwalker.com/file/26f075a3-4941-4ac8-877e-7dda777579db.webp",
      "date_published": "2026-04-02T21:18:12Z",
      "date_modified": "2026-04-02T21:18:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/smassh-monkeytype-clone-in-the-terminal/",
      "url": "https://waylonwalker.com/shots/smassh-monkeytype-clone-in-the-terminal/",
      "title": "Smassh Monkeytype Clone In The Terminal",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4\" class=\"glightbox-link\" aria-label=\"smassh monkeytype clone in the terminal\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4\" type=\"video/mp4\"\u003esmassh monkeytype clone in the terminal\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWhat a banger of a tui, fantastic job cloning monkeytype.  Looks so good.  The toast messages are a tell tale built with textual.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![smassh monkeytype clone in the terminal](https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4)\n\n\u003e What a banger of a tui, fantastic job cloning monkeytype.  Looks so good.  The toast messages are a tell tale built with textual.\n\n",
      "summary": "What a banger of a tui, fantastic job cloning monkeytype. Looks so good. The toast messages are a tell tale built with textual.",
      "image": "https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4",
      "date_published": "2026-04-02T21:17:09Z",
      "date_modified": "2026-04-02T21:17:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/sparklines-on-the-feeds-header/",
      "url": "https://waylonwalker.com/shots/sparklines-on-the-feeds-header/",
      "title": "Sparklines On The Feeds Header",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7d35b9ae-3e63-42f1-90c6-4cc0db518212.webp\" class=\"glightbox-link\" aria-label=\"sparklines on the feeds header\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/7d35b9ae-3e63-42f1-90c6-4cc0db518212.webp\" alt=\"sparklines on the feeds header\"/ data-glightbox=\"description: sparklines on the feeds header\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eView of the new markata-go feeds header with the banger of a sparkline.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![sparklines on the feeds header](https://dropper.waylonwalker.com/file/7d35b9ae-3e63-42f1-90c6-4cc0db518212.webp)\n\n\u003e View of the new markata-go feeds header with the banger of a sparkline.\n\n",
      "summary": "View of the new markata-go feeds header with the banger of a sparkline.",
      "image": "https://dropper.waylonwalker.com/file/7d35b9ae-3e63-42f1-90c6-4cc0db518212.webp",
      "date_published": "2026-04-02T21:15:21Z",
      "date_modified": "2026-04-02T21:15:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/getting-excited-for-this-new-feeds-page/",
      "url": "https://waylonwalker.com/shots/getting-excited-for-this-new-feeds-page/",
      "title": "Getting Excited For This New Feeds Page",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/b1579888-4b8d-4adc-9404-a0dfd97a7acf.webp\" class=\"glightbox-link\" aria-label=\"Getting excited for this new feeds page\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/b1579888-4b8d-4adc-9404-a0dfd97a7acf.webp\" alt=\"Getting excited for this new feeds page\"/ data-glightbox=\"description: Getting excited for this new feeds page\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThis sparklines on this new feeds page are chefs kiss.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Getting excited for this new feeds page](https://dropper.waylonwalker.com/file/b1579888-4b8d-4adc-9404-a0dfd97a7acf.webp)\n\n\u003e This sparklines on this new feeds page are chefs kiss.\n\n",
      "summary": "This sparklines on this new feeds page are chefs kiss.",
      "image": "https://dropper.waylonwalker.com/file/b1579888-4b8d-4adc-9404-a0dfd97a7acf.webp",
      "date_published": "2026-04-02T21:14:01Z",
      "date_modified": "2026-04-02T21:14:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-45/",
      "url": "https://waylonwalker.com/ping-45/",
      "title": "The year of the supply chain attacks",
      "content_html": "\u003cp\u003eI think I’m starting to understand my role as a platform developer in 2026.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eleast priveleged access\u003c/li\u003e\n\u003cli\u003edefault deny + explicit allow\u003c/li\u003e\n\u003cli\u003eunderstand your blast radius\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGREASED\u003c/strong\u003e creds rotate process\u003c/li\u003e\n\u003cli\u003ePIN EVERYTHING\u003c/li\u003e\n\u003cli\u003ekeep packages up to date\u003c/li\u003e\n\u003cli\u003ebut not too up to date, use dependency cooldowns\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nI think I'm starting to understand my role as a platform developer in 2026.\n\n* least priveleged access\n* default deny + explicit allow\n* understand your blast radius\n* **GREASED** creds rotate process\n* PIN EVERYTHING\n* keep packages up to date\n* but not too up to date, use dependency cooldowns\n",
      "summary": "I think I'm starting to understand my role as a platform developer in 2026.",
      "date_published": "2026-04-02T20:26:33Z",
      "date_modified": "2026-04-02T20:26:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-964/",
      "url": "https://waylonwalker.com/thought-964/",
      "title": "💭 GitHub - kraanzu/smassh at terminaltrove · GitHub",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/kraanzu/smassh?ref=terminaltrove\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://repository-images.githubusercontent.com/454288517/ffbff45f-2f28-4d8b-92d6-fbb22d457a62\" alt=\"GitHub - kraanzu/smassh at terminaltrove — Smassh your Keyboard, TUI Edition. Contribute to kraanzu/smassh development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - kraanzu/smassh at terminaltrove — Smassh your Keyboard, TUI Edition. Contribute to kraanzu/smassh development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - kraanzu/smassh at terminaltrove\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSmassh your Keyboard, TUI Edition. Contribute to kraanzu/smassh development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003esmassh is the coolest monkeytype tui clone, its impressively accurate.  Easy to install and run, all the same themes appear to be there and everything.  maybe a good way to get a few reps in while agents are running these days.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4\" class=\"glightbox-link\" aria-label=\"35102587-dffe-48ec-920a-a037917e7776.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4\" type=\"video/mp4\"\u003e35102587-dffe-48ec-920a-a037917e7776.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI need to go back and brush up on my skills I’m down a good 20wpm from what I should be doing.\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/kraanzu/smassh?ref=terminaltrove\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://repository-images.githubusercontent.com/454288517/ffbff45f-2f28-4d8b-92d6-fbb22d457a62\" alt=\"GitHub - kraanzu/smassh at terminaltrove — Smassh your Keyboard, TUI Edition. Contribute to kraanzu/smassh development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - kraanzu/smassh at terminaltrove\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSmassh your Keyboard, TUI Edition. Contribute to kraanzu/smassh development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nsmassh is the coolest monkeytype tui clone, its impressively accurate.  Easy to install and run, all the same themes appear to be there and everything.  maybe a good way to get a few reps in while agents are running these days.\n\n![35102587-dffe-48ec-920a-a037917e7776.mp4](https://dropper.waylonwalker.com/file/35102587-dffe-48ec-920a-a037917e7776.mp4)\nI need to go back and brush up on my skills I'm down a good 20wpm from what I should be doing.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/kraanzu/smassh?ref=terminaltrove",
      "date_published": "2026-04-02T09:07:37Z",
      "date_modified": "2026-04-02T09:07:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "terminal",
        "thought",
        "tui"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-44/",
      "url": "https://waylonwalker.com/ping-44/",
      "title": "The final nail for Windows?",
      "content_html": "\u003cp\u003eEasy anticheat for linux is out.\u003c/p\u003e\n\u003cdiv class=\"admonition tip\"\u003e\n\u003cp class=\"admonition-title\"\u003eTip\u003c/p\u003e\n\u003cp\u003elook at the date\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eIf this were real what would you play first?  For me it’s \u003ccode\u003eskate .\u003c/code\u003e is really\nthe only thing I care about and I’m fine without it.\u003c/p\u003e\n",
      "content_text": "\nEasy anticheat for linux is out.\n\n\n!!! tip\n\n    look at the date\n\nIf this were real what would you play first?  For me it's `skate .` is really\nthe only thing I care about and I'm fine without it.\n\n",
      "summary": "Easy anticheat for linux is out.",
      "date_published": "2026-04-01T20:23:53Z",
      "date_modified": "2026-04-01T20:23:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-963/",
      "url": "https://waylonwalker.com/thought-963/",
      "title": "💭 What Happens When AI Stops Being Artificially Cheap | Daniel M...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://danielmiessler.com/blog/ai-stops-being-artificially-cheap\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://danielmiessler.com/images/ai-stops-being-artificially-cheap-thumb.png?t=1778345718965\" alt=\"What Happens When AI Stops Being Artificially Cheap — The subsidy era is ending. Here\" loading=\"lazy\"/ data-glightbox=\"description: What Happens When AI Stops Being Artificially Cheap — The subsidy era is ending. Here\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhat Happens When AI Stops Being Artificially Cheap\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe subsidy era is ending. Here\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edanielmiessler.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve been thinking about this for awhile and Daniel makes some great arguments here.  Interestingly keeping inference cheap removes the incentives to make our tools better, help us choose the right model, lean on local models, open weight models.  The frontier models are so affordable through subsidized subscription models why would you deal with anything less intelligent at this point.  The tooling we use is not optimized for it, and why should it be.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://danielmiessler.com/blog/ai-stops-being-artificially-cheap\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://danielmiessler.com/images/ai-stops-being-artificially-cheap-thumb.png?t=1778345718965\" alt=\"What Happens When AI Stops Being Artificially Cheap — The subsidy era is ending. Here\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhat Happens When AI Stops Being Artificially Cheap\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe subsidy era is ending. Here\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edanielmiessler.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI've been thinking about this for awhile and Daniel makes some great arguments here.  Interestingly keeping inference cheap removes the incentives to make our tools better, help us choose the right model, lean on local models, open weight models.  The frontier models are so affordable through subsidized subscription models why would you deal with anything less intelligent at this point.  The tooling we use is not optimized for it, and why should it be.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://danielmiessler.com/blog/ai-stops-being-artificially-cheap",
      "date_published": "2026-04-01T12:04:12Z",
      "date_modified": "2026-04-01T12:04:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-962/",
      "url": "https://waylonwalker.com/thought-962/",
      "title": "💭 Tuesday, March 31, 2026 | Baty.net",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://baty.net/journal/31mar26/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebaty.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eemacs config so bad he launch obsidian, YIKES!  grantid I’m using obsidian currently on my phone, not for this post, but for journal entries while I’m away from my desk.  Use this as a reminder that you can swim through murky waters with your dotfiles for awhile, but occasionally its good to do a clean up, pin it, put em in a docker image, have a good fallback to go to if shit really hits the fan.  Iv’e been using \u003ca href=\"https://github.com/waylonwalker/nvim-manager\" 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\"\u003ehttps://github.com/waylonwalker/nvim-manager\u003c/a\u003e as part of my strategy for awhile now.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://baty.net/journal/31mar26/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebaty.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nemacs config so bad he launch obsidian, YIKES!  grantid I'm using obsidian currently on my phone, not for this post, but for journal entries while I'm away from my desk.  Use this as a reminder that you can swim through murky waters with your dotfiles for awhile, but occasionally its good to do a clean up, pin it, put em in a docker image, have a good fallback to go to if shit really hits the fan.  Iv'e been using https://github.com/waylonwalker/nvim-manager as part of my strategy for awhile now.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://baty.net/journal/31mar26/",
      "date_published": "2026-03-31T21:09:19Z",
      "date_modified": "2026-03-31T21:09:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "other",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-961/",
      "url": "https://waylonwalker.com/thought-961/",
      "title": "💭 Release 0.9.17 · astral-sh/uv · GitHub",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/astral-sh/uv/releases/tag/0.9.17\" class=\"glightbox-link\" aria-label=\"https://github.com/astral-sh/uv/releases/tag/0.9.17\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/astral-sh/uv/releases/tag/0.9.17\" alt=\"https://github.com/astral-sh/uv/releases/tag/0.9.17\"/ data-glightbox=\"description: https://github.com/astral-sh/uv/releases/tag/0.9.17\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003euv adds dependency cooldowns via \u003ca href=\"https://github.com/astral-sh/uv/pull/16814\" 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\"\u003e#16814\u003c/a\u003e. Well needed feature in todays world, far from a guarantee, but its something.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/astral-sh/uv/releases/tag/0.9.17](/static/https://github.com/astral-sh/uv/releases/tag/0.9.17)\n\nuv adds dependency cooldowns via [#16814](https://github.com/astral-sh/uv/pull/16814). Well needed feature in todays world, far from a guarantee, but its something.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/astral-sh/uv/releases/tag/0.9.17",
      "date_published": "2026-03-31T21:02:17Z",
      "date_modified": "2026-03-31T21:02:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-960/",
      "url": "https://waylonwalker.com/thought-960/",
      "title": "💭 Package Managers Need to Cool Down",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Mar/24/package-managers-need-to-cool-down/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePackage Managers Need to Cool Down\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eToday\u0026#39;s LiteLLM supply chain attack inspired me to revisit the idea of dependency cooldowns, the practice of only installing updated dependencies once they\u0026#39;ve been out in the wild for a …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e2026, finding the balance between fixed bugs and zero days.  There is very unlikely ever a reason you \u003cstrong\u003eneed\u003c/strong\u003e to be running bleeding edge packages in prod most package managers now support cool downs.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Mar/24/package-managers-need-to-cool-down/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePackage Managers Need to Cool Down\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eToday\u0026#39;s LiteLLM supply chain attack inspired me to revisit the idea of dependency cooldowns, the practice of only installing updated dependencies once they\u0026#39;ve been out in the wild for a …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n2026, finding the balance between fixed bugs and zero days.  There is very unlikely ever a reason you **need** to be running bleeding edge packages in prod most package managers now support cool downs.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2026/Mar/24/package-managers-need-to-cool-down/",
      "date_published": "2026-03-31T20:40:50Z",
      "date_modified": "2026-03-31T20:40:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-959/",
      "url": "https://waylonwalker.com/thought-959/",
      "title": "💭 no one read the source",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ThePrimeagen/status/2038978962089492631\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eEveryone look away, nothing to see here.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp\" class=\"glightbox-link\" aria-label=\"090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp\" alt=\"090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp\"/ data-glightbox=\"description: 090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ThePrimeagen/status/2038978962089492631\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nEveryone look away, nothing to see here.\n\n![090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp](https://dropper.waylonwalker.com/file/090f03b2-e6f5-4ede-a814-bfbb4e237b54.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/ThePrimeagen/status/2038978962089492631",
      "date_published": "2026-03-31T18:47:59Z",
      "date_modified": "2026-03-31T18:47:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "anthropic",
        "llm",
        "thought",
        "twitter"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-958/",
      "url": "https://waylonwalker.com/thought-958/",
      "title": "💭 safe words",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/metedata/status/2038924041453441422\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAnthropic safewords are the talk of the town today.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/c097c6dc-4b10-4fab-a9f9-1d4181422285.webp\" class=\"glightbox-link\" aria-label=\"c097c6dc-4b10-4fab-a9f9-1d4181422285.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/c097c6dc-4b10-4fab-a9f9-1d4181422285.webp\" alt=\"c097c6dc-4b10-4fab-a9f9-1d4181422285.webp\"/ data-glightbox=\"description: c097c6dc-4b10-4fab-a9f9-1d4181422285.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/metedata/status/2038924041453441422\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAnthropic safewords are the talk of the town today.\n\n![c097c6dc-4b10-4fab-a9f9-1d4181422285.webp](https://dropper.waylonwalker.com/file/c097c6dc-4b10-4fab-a9f9-1d4181422285.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/metedata/status/2038924041453441422",
      "date_published": "2026-03-31T18:46:01Z",
      "date_modified": "2026-03-31T18:46:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "anthropic",
        "llm",
        "thought",
        "twitter"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-957/",
      "url": "https://waylonwalker.com/thought-957/",
      "title": "💭 the cheng lou pretext tweet",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/_chenglou/status/2037713766205608234\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ewebdev twitter is blowing up with implementations of pretext text calculations.  The examples are absolutely fun and ridiculous.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/350a368f-0e6b-4375-98d6-6303961c0d6c.webp\" class=\"glightbox-link\" aria-label=\"350a368f-0e6b-4375-98d6-6303961c0d6c.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/350a368f-0e6b-4375-98d6-6303961c0d6c.webp\" alt=\"350a368f-0e6b-4375-98d6-6303961c0d6c.webp\"/ data-glightbox=\"description: 350a368f-0e6b-4375-98d6-6303961c0d6c.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/_chenglou/status/2037713766205608234\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nwebdev twitter is blowing up with implementations of pretext text calculations.  The examples are absolutely fun and ridiculous.\n\n![350a368f-0e6b-4375-98d6-6303961c0d6c.webp](https://dropper.waylonwalker.com/file/350a368f-0e6b-4375-98d6-6303961c0d6c.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/_chenglou/status/2037713766205608234",
      "date_published": "2026-03-31T18:38:39Z",
      "date_modified": "2026-03-31T18:38:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-43/",
      "url": "https://waylonwalker.com/ping-43/",
      "title": "Ping 43",
      "content_html": "\u003cp\u003eOkay so I logged into twitter today, and we are back…. probably not for long,\nbut we are for now.  Claude Code source leaked, the tweets are great. [[\nthoughts-956 ]], [[ thoughts-958 ]], [[ thoughts-959 ]], Some typescript css\ntext layout with bouncing balls, bubbles, strings, and webcam video to text is\nblowing up [[ thoughts-957 ]].  This is the tech twitter I remember no sad news\nhow the world is corrupt by the other side.\u003c/p\u003e\n",
      "content_text": "\nOkay so I logged into twitter today, and we are back.... probably not for long,\nbut we are for now.  Claude Code source leaked, the tweets are great. [[\nthoughts-956 ]], [[ thoughts-958 ]], [[ thoughts-959 ]], Some typescript css\ntext layout with bouncing balls, bubbles, strings, and webcam video to text is\nblowing up [[ thoughts-957 ]].  This is the tech twitter I remember no sad news\nhow the world is corrupt by the other side.\n",
      "summary": "Okay so I logged into twitter today, and we are back.... probably not for long, but we are for now. Claude Code source leaked, the tweets are great....",
      "date_published": "2026-03-31T18:33:05Z",
      "date_modified": "2026-03-31T18:33:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-956/",
      "url": "https://waylonwalker.com/thought-956/",
      "title": "💭 you can replace the spinning verbs in Claude Code",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/joshmedeski/status/2039010741039120417\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThe claude code source code leaked today and the tweets are great, maybe twitter is back.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDid you know you can replace the spinning verbs in Claude Code. I’m having fun with it.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp\" class=\"glightbox-link\" aria-label=\"8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp\" alt=\"8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp\"/ data-glightbox=\"description: 8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/joshmedeski/status/2039010741039120417\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe claude code source code leaked today and the tweets are great, maybe twitter is back.\n\n\u003e Did you know you can replace the spinning verbs in Claude Code. I'm having fun with it.\n\n![8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp](https://dropper.waylonwalker.com/file/8cf5cf65-40e1-4f40-8d09-b596a97dd51d.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/joshmedeski/status/2039010741039120417",
      "date_published": "2026-03-31T18:31:56Z",
      "date_modified": "2026-03-31T18:31:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought",
        "twitter"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-955/",
      "url": "https://waylonwalker.com/thought-955/",
      "title": "💭 @nicknisi.com on Bluesky",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/nicknisi.com/post/3mhgcbpm4ds2p\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:qcyz4wcmgnz4mzxevrsrf6j6/bafkreigqa53eff2zrpj3ycievkcogzoj6yhyvsngidu6zowjnjofvzng4i\" alt=\"Nick Nisi (@nicknisi.com) — Y\u0026#39;all, I think I\u0026#39;m a convert to pi\" loading=\"lazy\"/ data-glightbox=\"description: Nick Nisi (@nicknisi.com) — Y\u0026#39;all, I think I\u0026#39;m a convert to pi\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNick Nisi (@nicknisi.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eY\u0026#39;all, I think I\u0026#39;m a convert to pi\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m about to be pi pilled.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/nicknisi.com/post/3mhgcbpm4ds2p\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:qcyz4wcmgnz4mzxevrsrf6j6/bafkreigqa53eff2zrpj3ycievkcogzoj6yhyvsngidu6zowjnjofvzng4i\" alt=\"Nick Nisi (@nicknisi.com) — Y\u0026#39;all, I think I\u0026#39;m a convert to pi\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNick Nisi (@nicknisi.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eY\u0026#39;all, I think I\u0026#39;m a convert to pi\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm about to be pi pilled.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/nicknisi.com/post/3mhgcbpm4ds2p",
      "date_published": "2026-03-31T10:19:49Z",
      "date_modified": "2026-03-31T10:19:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/a-person-holds-a-clear-compartmentalized-tray-containing-multiple-small-sections-filled-with-light-colored-granular-material/",
      "url": "https://waylonwalker.com/shots/a-person-holds-a-clear-compartmentalized-tray-containing-multiple-small-sections-filled-with-light-colored-granular-material/",
      "title": "A person holds a clear, compartmentalized tray containing multiple small sections filled with light-colored, granular material",
      "content_html": "\u003cp\u003eThis is a reminder to clean your AC air filter, we run a window unit to cut\ncost of keeping the whole house cold.  We thought it had a dusty smell so I\ntook the whole thing out to clean up to find out it was really clean… except\nthe filter that I could have cleaned inside.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/754e203d-3795-4cdf-9c30-fee20eb0e653.webp\" class=\"glightbox-link\" aria-label=\"A person holds a clear, compartmentalized tray containing multiple small sections filled with light-colored, granular material. The tray is set against the backdrop of an outdoor wooden deck railing.\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/754e203d-3795-4cdf-9c30-fee20eb0e653.webp\" alt=\"A person holds a clear, compartmentalized tray containing multiple small sections filled with light-colored, granular material. The tray is set against the backdrop of an outdoor wooden deck railing.\"/ data-glightbox=\"description: A person holds a clear, compartmentalized tray containing multiple small sections filled with light-colored, granular material. The tray is set against the backdrop of an outdoor wooden deck railing.\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA person holds a clear, compartmentalized tray containing multiple small\nsections filled with light-colored, granular material. The tray is set\nagainst the backdrop of an outdoor wooden deck railing.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nThis is a reminder to clean your AC air filter, we run a window unit to cut\ncost of keeping the whole house cold.  We thought it had a dusty smell so I\ntook the whole thing out to clean up to find out it was really clean... except\nthe filter that I could have cleaned inside.\n\n![A person holds a clear, compartmentalized tray containing multiple small sections filled with light-colored, granular material. The tray is set against the backdrop of an outdoor wooden deck railing.](http://dropper.waylonwalker.com/file/754e203d-3795-4cdf-9c30-fee20eb0e653.webp)\n\u003e A person holds a clear, compartmentalized tray containing multiple small\n\u003e sections filled with light-colored, granular material. The tray is set\n\u003e against the backdrop of an outdoor wooden deck railing.\n",
      "summary": "A person holds a clear, compartmentalized tray containing multiple small sections filled with light-colored, granular material. The tray is set against the backdrop of an outdoor wooden deck railing.",
      "image": "http://dropper.waylonwalker.com/file/754e203d-3795-4cdf-9c30-fee20eb0e653.webp",
      "date_published": "2026-03-30T16:52:38Z",
      "date_modified": "2026-03-30T16:52:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "hand",
        "material",
        "shots",
        "tray",
        "wooden deck"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/wyatts-first-printed-cosplay-scales/",
      "url": "https://waylonwalker.com/shots/wyatts-first-printed-cosplay-scales/",
      "title": "Wyatt's First Printed Cosplay Scales",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/aaaf7c08-b59b-48ff-bc16-287f40a207da.webp\" class=\"glightbox-link\" aria-label=\"Wyatt’s first printed cosplay scales\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/aaaf7c08-b59b-48ff-bc16-287f40a207da.webp\" alt=\"Wyatt’s first printed cosplay scales\"/ data-glightbox=\"description: Wyatt’s first printed cosplay scales\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWyatt printed these sick scales today and they came out so good on first try, luckily Rhiannon already had the fabric for him and he was able to follow his passion on this project while the spark was lit.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Wyatt's first printed cosplay scales](https://dropper.waylonwalker.com/file/aaaf7c08-b59b-48ff-bc16-287f40a207da.webp)\n\n\u003e Wyatt printed these sick scales today and they came out so good on first try, luckily Rhiannon already had the fabric for him and he was able to follow his passion on this project while the spark was lit.\n\n",
      "summary": "Wyatt printed these sick scales today and they came out so good on first try, luckily Rhiannon already had the fabric for him and he was able to follow his passion on this project while the spark was lit.",
      "image": "https://dropper.waylonwalker.com/file/aaaf7c08-b59b-48ff-bc16-287f40a207da.webp",
      "date_published": "2026-03-30T10:22:31Z",
      "date_modified": "2026-03-30T10:22:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/wreath-of-purity/",
      "url": "https://waylonwalker.com/shots/wreath-of-purity/",
      "title": "Wreath Of Purity",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/6463fb4a-33ab-43da-8e7f-86b80ac9292f.mp4\" class=\"glightbox-link\" aria-label=\"Wreath Of Purity\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/6463fb4a-33ab-43da-8e7f-86b80ac9292f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/6463fb4a-33ab-43da-8e7f-86b80ac9292f.mp4\" type=\"video/mp4\"\u003eWreath Of Purity\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eDie Muck Maggots\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Wreath Of Purity](https://dropper.waylonwalker.com/file/6463fb4a-33ab-43da-8e7f-86b80ac9292f.mp4)\n\n\u003e Die Muck Maggots\n",
      "summary": "Wreath Of Purity Acquired",
      "image": "https://dropper.waylonwalker.com/file/6463fb4a-33ab-43da-8e7f-86b80ac9292f.mp4",
      "date_published": "2026-03-29T20:30:23Z",
      "date_modified": "2026-03-29T20:30:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/longclaw/",
      "url": "https://waylonwalker.com/shots/longclaw/",
      "title": "Longclaw Acuiquired",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/532ae693-3c1b-4ae1-aae8-cf86edb04b4a.mp4\" class=\"glightbox-link\" aria-label=\"Longclaw\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/532ae693-3c1b-4ae1-aae8-cf86edb04b4a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/532ae693-3c1b-4ae1-aae8-cf86edb04b4a.mp4\" type=\"video/mp4\"\u003eLongclaw\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI went all the way through \u003ca href=\"/shots/groal-the-great-bench/\" class=\"wikilink\" data-title=\"Groal The Great Bench\" data-description=\"Goal The Great Bench\" data-date=\"2026-03-29\" data-preview=\"Goal The Great Bench\" data-preview-image=\"https://dropper.waylonwalker.com/file/08220e04-8639-456c-b348-681dae69eeff.mp4\"\u003eGroal The Great Bench\u003c/a\u003e to find Longclaw only to relize thats not where you get it.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Longclaw](https://dropper.waylonwalker.com/file/532ae693-3c1b-4ae1-aae8-cf86edb04b4a.mp4)\n\n\u003e I went all the way through \u003ca href=\"/shots/groal-the-great-bench/\" class=\"wikilink\" data-title=\"Groal The Great Bench\" data-description=\"Goal The Great Bench\" data-date=\"2026-03-29\"\u003eGroal The Great Bench\u003c/a\u003e to find Longclaw only to relize thats not where you get it.\n",
      "summary": "By completing Broodfeast Wish you acquire the Longclaw giving you a longer range attack.",
      "image": "https://dropper.waylonwalker.com/file/532ae693-3c1b-4ae1-aae8-cf86edb04b4a.mp4",
      "date_published": "2026-03-29T20:29:49Z",
      "date_modified": "2026-03-29T20:29:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/seekers-soul/",
      "url": "https://waylonwalker.com/shots/seekers-soul/",
      "title": "Seekers Soul",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/2be10b76-f5df-4604-8024-c5c0aeed92d9.mp4\" class=\"glightbox-link\" aria-label=\"Seekers Soul\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/2be10b76-f5df-4604-8024-c5c0aeed92d9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/2be10b76-f5df-4604-8024-c5c0aeed92d9.mp4\" type=\"video/mp4\"\u003eSeekers Soul\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSeekers Soul\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Seekers Soul](https://dropper.waylonwalker.com/file/2be10b76-f5df-4604-8024-c5c0aeed92d9.mp4)\n\n\u003e Seekers Soul\n",
      "summary": "Seekers Soul",
      "image": "https://dropper.waylonwalker.com/file/2be10b76-f5df-4604-8024-c5c0aeed92d9.mp4",
      "date_published": "2026-03-29T20:29:12Z",
      "date_modified": "2026-03-29T20:29:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/groal-the-great/",
      "url": "https://waylonwalker.com/shots/groal-the-great/",
      "title": "Groal The Great",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/cdb840a6-a807-427a-a558-744d92812862.mp4\" class=\"glightbox-link\" aria-label=\"Goal The Great\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/cdb840a6-a807-427a-a558-744d92812862.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/cdb840a6-a807-427a-a558-744d92812862.mp4\" type=\"video/mp4\"\u003eGoal The Great\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThis dude was a bear to handle, long run up through the muck maggots, you\nonly meet him after a full arena battle, his balls bounce erratically do 2\ndamage each that quickly cause you to stack up 2x2 hits.  I finally took the\ncowards way out and hid in the water to defeat him.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Goal The Great](https://dropper.waylonwalker.com/file/cdb840a6-a807-427a-a558-744d92812862.mp4)\n\n\u003e This dude was a bear to handle, long run up through the muck maggots, you\n\u003e only meet him after a full arena battle, his balls bounce erratically do 2\n\u003e damage each that quickly cause you to stack up 2x2 hits.  I finally took the\n\u003e cowards way out and hid in the water to defeat him.\n",
      "summary": "Goal The Great",
      "image": "https://dropper.waylonwalker.com/file/cdb840a6-a807-427a-a558-744d92812862.mp4",
      "date_published": "2026-03-29T20:16:57Z",
      "date_modified": "2026-03-29T20:16:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/updating-the-arch-iso/",
      "url": "https://waylonwalker.com/shots/updating-the-arch-iso/",
      "title": "Updating The Arch Iso",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/31a456ec-37e2-4feb-a250-96e23d670aee.webp\" class=\"glightbox-link\" aria-label=\"Updating the arch iso\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/31a456ec-37e2-4feb-a250-96e23d670aee.webp\" alt=\"Updating the arch iso\"/ data-glightbox=\"description: Updating the arch iso\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWyatt is working on a new arch install and it blew up, time to update the live image.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Updating the arch iso](https://dropper.waylonwalker.com/file/31a456ec-37e2-4feb-a250-96e23d670aee.webp)\n\n\u003e Wyatt is working on a new arch install and it blew up, time to update the live image.\n\n",
      "summary": "Wyatt is working on a new arch install and it blew up, time to update the live image.",
      "image": "https://dropper.waylonwalker.com/file/31a456ec-37e2-4feb-a250-96e23d670aee.webp",
      "date_published": "2026-03-28T18:24:50Z",
      "date_modified": "2026-03-28T18:24:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-42/",
      "url": "https://waylonwalker.com/ping-42/",
      "title": "Social Media is dead",
      "content_html": "\u003cp\u003eSocial Media is dead, interest media killed it long ago.  I no longer feel like\nI’m connecting to people, creating community, having fun, learning.  I feel\nlike I’m being shoveled slop from the slop machine, I’m sure mostly create by\nwell intentioned people just trying to make it in the world, trying to make\ntheir mark, trying to make something of themselves.  The algos long lost the\nidea of subs and likes, and transitioned to how long you will pause on a topic.\nWhat used to be a series of recognizable faces, names, avatars, each with their\nown personality that I could come to learn and know who was just trollin, who\nwas serious, is now mostly unrecognizable.  Platforms have changed and\nfractured communities people went separate ways, not all the same ways.  No one\ncommunity is like it used to be, and its hard to find.\u003c/p\u003e\n",
      "content_text": "\nSocial Media is dead, interest media killed it long ago.  I no longer feel like\nI'm connecting to people, creating community, having fun, learning.  I feel\nlike I'm being shoveled slop from the slop machine, I'm sure mostly create by\nwell intentioned people just trying to make it in the world, trying to make\ntheir mark, trying to make something of themselves.  The algos long lost the\nidea of subs and likes, and transitioned to how long you will pause on a topic.\nWhat used to be a series of recognizable faces, names, avatars, each with their\nown personality that I could come to learn and know who was just trollin, who\nwas serious, is now mostly unrecognizable.  Platforms have changed and\nfractured communities people went separate ways, not all the same ways.  No one\ncommunity is like it used to be, and its hard to find.\n",
      "summary": "Social Media is dead, interest media killed it long ago. I no longer feel like I'm connecting to people, creating community, having fun, learning. I feel...",
      "date_published": "2026-03-28T12:17:44Z",
      "date_modified": "2026-03-28T12:17:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/carry/",
      "url": "https://waylonwalker.com/carry/",
      "title": "/carry/",
      "content_html": "\u003ch2 id=\"edc\"\u003eEDC \u003ca href=\"#edc\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI try to keep a pretty light every day carry, but it never works out, keyfobs\nand headphone cases end up causing more bulk than I’d like, but My EDC is no\nwhere near the bulk I had as a kid with my cargo pants decked out with\neverything I could possibly need.\u003c/p\u003e\n\u003cp\u003eI hold no attachment to anything in my EDC.  Nothing on my person has\nsentimental value.  Anything I carry can be lost, stolen, or destroyed at any\npoint in time.  I pick things of sufficient usable, utilitarian, quality\nsufficient to work.  No extra fluff.\u003c/p\u003e\n\u003chr/\u003e\n\u003cul\u003e\n\u003cli\u003eGoogle Pixel 6\u003c/li\u003e\n\u003cli\u003eRidge Wallet\u003c/li\u003e\n\u003cli\u003eOlight Perun - Since April 2022\u003c/li\u003e\n\u003cli\u003eCivivi Qubit - Since March 2024 after my last one was donated to the Indianapolis Stadium\u003c/li\u003e\n\u003cli\u003eOpenFit Shokz\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"rules\"\u003eRules \u003ca href=\"#rules\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003elightweight\u003c/li\u003e\n\u003cli\u003ereplacable\u003c/li\u003e\n\u003cli\u003eno emotional attachments\u003c/li\u003e\n\u003cli\u003eutilitarian\u003c/li\u003e\n\u003cli\u003eeverything serves a purpose\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"my-kit\"\u003eMy kit \u003ca href=\"#my-kit\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/606e48d7-bf14-42b9-a96e-87b676556ff8.webp\" class=\"glightbox-link\" aria-label=\"My EDC layout\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/606e48d7-bf14-42b9-a96e-87b676556ff8.webp\" alt=\"My EDC layout\"/ data-glightbox=\"description: My EDC layout\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePhoto taken March 2023\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"phone\"\u003ePhone \u003ca href=\"#phone\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eGoogle Pixel 6\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI will not get finance a new phone for the foreseeable future again.  The last\ntime I feel like I got a phone that felt like an upgrade was 2018 when I went\nto the Pixel 3.  The pixel 6 and pixel 8 my wife has feel no different\nwhatsoever to me.  It’s become more of a tool that does its job, there’s no\nmajor upgrades really driving me to create more ewaste with new devices.\u003c/p\u003e\n\u003ch2 id=\"wallet\"\u003eWallet \u003ca href=\"#wallet\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eRidge Wallet\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eA necessary evil that I still need.  I keep as few of cards as necessary in it.\nThis would be the worst thing in my kit to loose.  Only because the time it\nwould take to replace all of them.  This one was a gift to replace my last\nleather wallet, and I see no reason for this one to ever need replaced.  It’s\nmuch lighter and smaller, would not change that aspect.\u003c/p\u003e\n\u003ch2 id=\"flashlight\"\u003eFlashlight \u003ca href=\"#flashlight\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eOlight Perun\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eWhen I became a homeowner I added a dedicated flashlight to my EDC.  Its light\nand out of the way.  It’s the only thing I’ve ever found useful to fit in the\ncoin pocket of jeans, so I don’t even notice it.  Compared to using a phone,\nits more powerful, easier to position on me with the clip on my shirt/pants, or\nmagnetically to a metal surface for inspections/house work.\u003c/p\u003e\n\u003ch2 id=\"knife\"\u003eKnife \u003ca href=\"#knife\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eCivivi Qubit\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI’ve carried a knife since as long as I can remember, feels like 10 but\nprobably more like 14 years old.  Never anything fancy, a few knock off\nleathermans, a few Buck, Case, KaBar that I found on a bridge, and now 3\nCivivis.  I use them till they break or more commonly they get lent and not\nreturned, or lost.  This is the most utilitarian thing I keep, almost always\nkept razor sharp, used, abused, and put away dirty.  Never used for prying, but\nused to cut anything it will cut no matter how \u003cem\u003ehard\u003c/em\u003e it is on it.  Its not to\nlook pretty, show off, its purely a tool that I hold no attachment to.\u003c/p\u003e\n\u003ch2 id=\"headphones\"\u003eHeadphones \u003ca href=\"#headphones\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eOpenFit Shokz\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eNot my first choice in headphones, but they work.  Headphones are probably the\nitem of biggest churn and ewaste for me.  Eventually I might pony up for\nsomething that is more durable and repairable, but headphones just don’t last\nforever before they stop working for me.  This latest pair was a pair my wife\nchose to try and did not like.  They sat in a drawer for a year or so until I\nstarted carrying them.\u003c/p\u003e\n",
      "content_text": "\n## EDC\n\nI try to keep a pretty light every day carry, but it never works out, keyfobs\nand headphone cases end up causing more bulk than I'd like, but My EDC is no\nwhere near the bulk I had as a kid with my cargo pants decked out with\neverything I could possibly need.\n\nI hold no attachment to anything in my EDC.  Nothing on my person has\nsentimental value.  Anything I carry can be lost, stolen, or destroyed at any\npoint in time.  I pick things of sufficient usable, utilitarian, quality\nsufficient to work.  No extra fluff.\n\n---\n\n* Google Pixel 6\n* Ridge Wallet\n* Olight Perun - Since April 2022\n* Civivi Qubit - Since March 2024 after my last one was donated to the Indianapolis Stadium\n* OpenFit Shokz\n\n---\n\n## Rules\n\n* lightweight\n* replacable\n* no emotional attachments\n* utilitarian\n* everything serves a purpose\n\n## My kit\n\n![My EDC layout](https://dropper.waylonwalker.com/file/606e48d7-bf14-42b9-a96e-87b676556ff8.webp)\nPhoto taken March 2023\n\n## Phone\n_Google Pixel 6_\n\nI will not get finance a new phone for the foreseeable future again.  The last\ntime I feel like I got a phone that felt like an upgrade was 2018 when I went\nto the Pixel 3.  The pixel 6 and pixel 8 my wife has feel no different\nwhatsoever to me.  It's become more of a tool that does its job, there's no\nmajor upgrades really driving me to create more ewaste with new devices.\n\n## Wallet\n_Ridge Wallet_\n\nA necessary evil that I still need.  I keep as few of cards as necessary in it.\nThis would be the worst thing in my kit to loose.  Only because the time it\nwould take to replace all of them.  This one was a gift to replace my last\nleather wallet, and I see no reason for this one to ever need replaced.  It's\nmuch lighter and smaller, would not change that aspect.\n\n## Flashlight\n_Olight Perun_\n\nWhen I became a homeowner I added a dedicated flashlight to my EDC.  Its light\nand out of the way.  It's the only thing I've ever found useful to fit in the\ncoin pocket of jeans, so I don't even notice it.  Compared to using a phone,\nits more powerful, easier to position on me with the clip on my shirt/pants, or\nmagnetically to a metal surface for inspections/house work.\n\n## Knife\n_Civivi Qubit_\n\nI've carried a knife since as long as I can remember, feels like 10 but\nprobably more like 14 years old.  Never anything fancy, a few knock off\nleathermans, a few Buck, Case, KaBar that I found on a bridge, and now 3\nCivivis.  I use them till they break or more commonly they get lent and not\nreturned, or lost.  This is the most utilitarian thing I keep, almost always\nkept razor sharp, used, abused, and put away dirty.  Never used for prying, but\nused to cut anything it will cut no matter how _hard_ it is on it.  Its not to\nlook pretty, show off, its purely a tool that I hold no attachment to.\n\n## Headphones\n_OpenFit Shokz_\n\nNot my first choice in headphones, but they work.  Headphones are probably the\nitem of biggest churn and ewaste for me.  Eventually I might pony up for\nsomething that is more durable and repairable, but headphones just don't last\nforever before they stop working for me.  This latest pair was a pair my wife\nchose to try and did not like.  They sat in a drawer for a year or so until I\nstarted carrying them.\n\n",
      "summary": "I try to keep a pretty light every day carry, but it never works out, keyfobs and headphone cases end up causing more bulk than I'd like, but My EDC is no...",
      "date_published": "2026-03-27T16:35:40Z",
      "date_modified": "2026-03-27T16:35:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-37/",
      "url": "https://waylonwalker.com/ping-37/",
      "title": "Where Is The Tech Industry Going",
      "content_html": "\u003cp\u003eAgents suck\u003c/p\u003e\n\u003cp\u003eGet left behind if you don’t use them\u003c/p\u003e\n\u003cp\u003eBurn out if you use them too much\u003c/p\u003e\n\u003cp\u003eThe software world has been flipped upside down seemingly overnight.  Slow at\nfirst, then all at once.  It started with auto complete, to chat, to, ide\nintegrations, to agents that would f\u0026amp;!^ over your repo more than it would help.\nUp till this point we are just  little bit better and more specific than copy\npaste from Stack Overflow. Then in Nov 2025 models learned how to effectively\nuse tools and do what you ask of them, sometimes more, sometimes less, but\ngenerally for the basic shit most of us make its a net positive with each\niteration.\u003c/p\u003e\n\u003cp\u003eOur techniques for managing work need to change.\u003c/p\u003e\n\u003cp\u003eOur expectations need to change.\u003c/p\u003e\n\u003cp\u003eBurnout for a lot of folks is coming.\u003c/p\u003e\n",
      "content_text": "\nAgents suck\n\nGet left behind if you don't use them\n\nBurn out if you use them too much\n\nThe software world has been flipped upside down seemingly overnight.  Slow at\nfirst, then all at once.  It started with auto complete, to chat, to, ide\nintegrations, to agents that would f\u0026!^ over your repo more than it would help.\nUp till this point we are just  little bit better and more specific than copy\npaste from Stack Overflow. Then in Nov 2025 models learned how to effectively\nuse tools and do what you ask of them, sometimes more, sometimes less, but\ngenerally for the basic shit most of us make its a net positive with each\niteration.\n\nOur techniques for managing work need to change.\n\nOur expectations need to change.\n\nBurnout for a lot of folks is coming.\n",
      "summary": "Agents suck",
      "date_published": "2026-03-27T14:11:49Z",
      "date_modified": "2026-03-27T14:11:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/is-compaction-the-issue/",
      "url": "https://waylonwalker.com/is-compaction-the-issue/",
      "title": "Is Compaction The Issue",
      "content_html": "\u003cp\u003eI saw today in work chat something along the lines of “we need bigger context\nwindows” “compaction times are holding us back”.  Maybe I’m just blessed with\nthe lack of lord jira, maybe juggle too many projects at once and they are all\npretty much done when I get back.  Maybe I do more long running specs and spend\ntime making good plans that it does not matter.\u003c/p\u003e\n\u003cp\u003eAnyways the point I’m getting to is that if you think that compaction is your\nmain issue slowing you down, and 10x this if you are a manager thinking this is\nwhat is slowing down your team you \u003cstrong\u003eneed\u003c/strong\u003e to look at your workflow.  Not\nbecause it sucks.  Not only because it could be better.  Because you are\nsigning yourself and your team up for burnout if you are sitting there watching\nthese things run like waiting for paint to dry and firing more prompts at them\nas soon as they are done.  It feels easy.  It feels like you are going fast.\nIts eating more brainpower than you think, and its not getting you to your\ndestination any faster.\u003c/p\u003e\n",
      "content_text": "\nI saw today in work chat something along the lines of \"we need bigger context\nwindows\" \"compaction times are holding us back\".  Maybe I'm just blessed with\nthe lack of lord jira, maybe juggle too many projects at once and they are all\npretty much done when I get back.  Maybe I do more long running specs and spend\ntime making good plans that it does not matter.  \n\nAnyways the point I'm getting to is that if you think that compaction is your\nmain issue slowing you down, and 10x this if you are a manager thinking this is\nwhat is slowing down your team you **need** to look at your workflow.  Not\nbecause it sucks.  Not only because it could be better.  Because you are\nsigning yourself and your team up for burnout if you are sitting there watching\nthese things run like waiting for paint to dry and firing more prompts at them\nas soon as they are done.  It feels easy.  It feels like you are going fast.\nIts eating more brainpower than you think, and its not getting you to your\ndestination any faster.\n",
      "summary": "I saw today in work chat something along the lines of \"we need bigger context windows\" \"compaction times are holding us back\". Maybe I'm just blessed with...",
      "date_published": "2026-03-26T09:37:47Z",
      "date_modified": "2026-03-26T09:37:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-954/",
      "url": "https://waylonwalker.com/thought-954/",
      "title": "💭 To Live In A World Without AI",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/to-live-in-a-world-without-ai/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"To Live In A World Without AI | Nic Payne — I\u0026#39;m finding lately that I wish we could go back to pre-ChatGPT... A world\nwithout a code-gen easy button, where \u0026#34;easy\u0026#34; was LSP autocomplete, wher\" loading=\"lazy\"/ data-glightbox=\"description: To Live In A World Without AI | Nic Payne — I\u0026#39;m finding lately that I wish we could go back to pre-ChatGPT... A world\nwithout a code-gen easy button, where \u0026#34;easy\u0026#34; was LSP autocomplete, wher\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTo Live In A World Without AI | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI\u0026#39;m finding lately that I wish we could go back to pre-ChatGPT... A world\nwithout a code-gen easy button, where \u0026#34;easy\u0026#34; was LSP autocomplete, wher\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWe f\u0026amp;\u003cem\u003e#ing said @pype.dev, well f\u0026amp;\u003c/em\u003e#ing said.  I think a lot of us are feeling this, we’ve pitched our brain into a bucket and we are no longer stretching it in the same way.  We still work in similar ways of old, with new ways of turning off and saying yes a bunch of times.  the best thing I can hope for is that as things get better we have fewer yes loops, and more architectural design debates and deep thoughts.  But I fear deep thoughts are gone to the way of “research the leading 10 frameworks and pick the best one for this project.” and letting the clankers do the deep thinking.  Its signing us up for a weird distopia.\u003c/p\u003e\n\u003cp\u003eI think a lot of us wish we could undo what has happened and go back to actually understanding what we are doing, but the world has changed, and if you are building average shit, like the average person, using models trained on average people doing average shit you cant keep up anymore.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/to-live-in-a-world-without-ai/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"To Live In A World Without AI | Nic Payne — I\u0026#39;m finding lately that I wish we could go back to pre-ChatGPT... A world\nwithout a code-gen easy button, where \u0026#34;easy\u0026#34; was LSP autocomplete, wher\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTo Live In A World Without AI | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI\u0026#39;m finding lately that I wish we could go back to pre-ChatGPT... A world\nwithout a code-gen easy button, where \u0026#34;easy\u0026#34; was LSP autocomplete, wher\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWe f\u0026*#ing said @pype.dev, well f\u0026*#ing said.  I think a lot of us are feeling this, we've pitched our brain into a bucket and we are no longer stretching it in the same way.  We still work in similar ways of old, with new ways of turning off and saying yes a bunch of times.  the best thing I can hope for is that as things get better we have fewer yes loops, and more architectural design debates and deep thoughts.  But I fear deep thoughts are gone to the way of \"research the leading 10 frameworks and pick the best one for this project.\" and letting the clankers do the deep thinking.  Its signing us up for a weird distopia.\n\nI think a lot of us wish we could undo what has happened and go back to actually understanding what we are doing, but the world has changed, and if you are building average shit, like the average person, using models trained on average people doing average shit you cant keep up anymore.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/to-live-in-a-world-without-ai/",
      "date_published": "2026-03-26T08:29:37Z",
      "date_modified": "2026-03-26T08:29:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-953/",
      "url": "https://waylonwalker.com/thought-953/",
      "title": "💭 pype.dev - https://github.com/steveyegge/beads",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/my-thoughts-on-beads/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20260303115635_629b64a7.png\" alt=\"My Thoughts on Beads | Nic Payne — [Steve Yegge](https://en.wikipedia.org/wiki/Steve_Yegge) is a pretty well-known individual in the tech field, having been\naround for a long time at some of the\" loading=\"lazy\"/ data-glightbox=\"description: My Thoughts on Beads | Nic Payne — [Steve Yegge](https://en.wikipedia.org/wiki/Steve_Yegge) is a pretty well-known individual in the tech field, having been\naround for a long time at some of the\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMy Thoughts on Beads | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e[Steve Yegge](https://en.wikipedia.org/wiki/Steve_Yegge) is a pretty well-known individual in the tech field, having been\naround for a long time at some of the \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m in step with @pype.dev here, I really want beads to work for me, but my systems for infra/platform work are all over the place, not one repo.  I’m considering trying the \u003ccode\u003eBEADS_DIR\u003c/code\u003e env var but idk if it fits my workflow.  For now, similar to @pype.dev, I am rocking my own home vibed solution that I’ve intentionally put little effort in and its working great and I expect it to be broken and not working with the latest harnesses and models within a few months anyways, cause there is no predicting this train.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/my-thoughts-on-beads/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20260303115635_629b64a7.png\" alt=\"My Thoughts on Beads | Nic Payne — [Steve Yegge](https://en.wikipedia.org/wiki/Steve_Yegge) is a pretty well-known individual in the tech field, having been\naround for a long time at some of the\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMy Thoughts on Beads | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e[Steve Yegge](https://en.wikipedia.org/wiki/Steve_Yegge) is a pretty well-known individual in the tech field, having been\naround for a long time at some of the \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm in step with @pype.dev here, I really want beads to work for me, but my systems for infra/platform work are all over the place, not one repo.  I'm considering trying the `BEADS_DIR` env var but idk if it fits my workflow.  For now, similar to @pype.dev, I am rocking my own home vibed solution that I've intentionally put little effort in and its working great and I expect it to be broken and not working with the latest harnesses and models within a few months anyways, cause there is no predicting this train.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/my-thoughts-on-beads/",
      "date_published": "2026-03-26T08:24:05Z",
      "date_modified": "2026-03-26T08:24:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-952/",
      "url": "https://waylonwalker.com/thought-952/",
      "title": "💭 paynepride dot com outage on vacation",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/paynepride-dot-com-outage-on-vacation/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"paynepride dot com outage on vacation | Nic Payne — The day after I leave for vacation I start getting SSL errors on every homelab\nservice I host for myself and others. The culprit was my Cloudflare API token\nexp\" loading=\"lazy\"/ data-glightbox=\"description: paynepride dot com outage on vacation | Nic Payne — The day after I leave for vacation I start getting SSL errors on every homelab\nservice I host for myself and others. The culprit was my Cloudflare API token\nexp\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003epaynepride dot com outage on vacation | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe day after I leave for vacation I start getting SSL errors on every homelab\nservice I host for myself and others. The culprit was my Cloudflare API token\nexp\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eoof, outage on the \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e during vacation, brutal.  I can think of a couple of similar solutions to what @pype.dev has done to tailscale in, but I’m not sure that I could do this remotely.  On one hand I’m so glad that cloudflared just takes care of certs on the other hand this really brings a gap in my understanding of what the heck I would do if it were broken.\u003c/p\u003e\n\u003cp\u003eAn untested DR plan is not a DR plan.\u003c/p\u003e\n\u003cp\u003eAn untested backup does not exist.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/paynepride-dot-com-outage-on-vacation/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"paynepride dot com outage on vacation | Nic Payne — The day after I leave for vacation I start getting SSL errors on every homelab\nservice I host for myself and others. The culprit was my Cloudflare API token\nexp\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003epaynepride dot com outage on vacation | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe day after I leave for vacation I start getting SSL errors on every homelab\nservice I host for myself and others. The culprit was my Cloudflare API token\nexp\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\noof, outage on the homelab during vacation, brutal.  I can think of a couple of similar solutions to what @pype.dev has done to tailscale in, but I'm not sure that I could do this remotely.  On one hand I'm so glad that cloudflared just takes care of certs on the other hand this really brings a gap in my understanding of what the heck I would do if it were broken.\n\nAn untested DR plan is not a DR plan.\n\nAn untested backup does not exist.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/paynepride-dot-com-outage-on-vacation/",
      "date_published": "2026-03-26T08:20:22Z",
      "date_modified": "2026-03-26T08:20:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-951/",
      "url": "https://waylonwalker.com/thought-951/",
      "title": "💭 Has 3D Printing Reduced Adam Savage's Maker's High? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"l8vxTYJbzSY\" title=\"Has 3D Printing Reduced Adam Savage\u0026#39;s Maker\u0026#39;s High?\" playlabel=\"Play: Has 3D Printing Reduced Adam Savage\u0026#39;s Maker\u0026#39;s High?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003eVibe coding\u003c/a\u003e is going so far into the news sphere now that Adam Savage even weighs in with perspectives from someone who has built a life around building things with his hands, keeping up with new making techniques, discovering old techniques as they combine with new.  He talks about 3d printing reviving his love of the pantograph as one automation technique eases the most difficult part of another.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"l8vxTYJbzSY\" title=\"Has 3D Printing Reduced Adam Savage\u0026#39;s Maker\u0026#39;s High?\" playlabel=\"Play: Has 3D Printing Reduced Adam Savage\u0026#39;s Maker\u0026#39;s High?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nVibe coding is going so far into the news sphere now that Adam Savage even weighs in with perspectives from someone who has built a life around building things with his hands, keeping up with new making techniques, discovering old techniques as they combine with new.  He talks about 3d printing reviving his love of the pantograph as one automation technique eases the most difficult part of another.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/l8vxTYJbzSY?t=107",
      "date_published": "2026-03-25T20:37:06Z",
      "date_modified": "2026-03-25T20:37:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "making",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/lets-land-the-plane/",
      "url": "https://waylonwalker.com/lets-land-the-plane/",
      "title": "Lets Land The Plane",
      "content_html": "\u003cp\u003ePart of @steveyegge ’s gastown/beads is a prompt “Lets land the plane”.  It’s very straightforward forward and what any sane human would probably do before finishing work, except the last part.  The “generate a handoff prompt for the next session” was not something I’ve put much thought into.  But now that I juggle 6 sessions at a time and often end up with 20 sessions open because I don’t want to close them and loose the last bit of context.  This is what I need to keep from crippling my laptop memory from all of these stale sessions hanging around.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/b75a3a4d-679c-415d-9d14-231b0f75e0ff.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/b75a3a4d-679c-415d-9d14-231b0f75e0ff.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTaken from \u003ca href=\"https://ianbull.com/posts/beads\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ianbull.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ianbull.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://ianbull.com/posts/beads\u003c/a\u003e\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n",
      "content_text": "Part of @steveyegge 's gastown/beads is a prompt \"Lets land the plane\".  It's very straightforward forward and what any sane human would probably do before finishing work, except the last part.  The \"generate a handoff prompt for the next session\" was not something I've put much thought into.  But now that I juggle 6 sessions at a time and often end up with 20 sessions open because I don't want to close them and loose the last bit of context.  This is what I need to keep from crippling my laptop memory from all of these stale sessions hanging around.\n\n![](https://dropper.waylonwalker.com/file/b75a3a4d-679c-415d-9d14-231b0f75e0ff.webp)\nTaken from https://ianbull.com/posts/beads\n",
      "summary": "Part of @steveyegge 's gastown/beads is a prompt \"Lets land the plane\". It's very straightforward forward and what any sane human would probably do before...",
      "date_published": "2026-03-25T08:41:15Z",
      "date_modified": "2026-03-25T08:41:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-950/",
      "url": "https://waylonwalker.com/thought-950/",
      "title": "💭 kubernetes is beautiful r/kubernetes",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-reddit\"\u003e\n  \u003ca href=\"https://www.reddit.com/r/kubernetes/comments/1rzyhip/kubernetes_is_beautiful/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.reddit.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.reddit.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKubernetes is beautiful.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKubernetes is beautiful.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eReddit · reddit.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a fantastic progression through kuberentes concepts.  From running a pod, to making it resiliant, holding secrets, accepting traffic, and autoscaling.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-reddit\"\u003e\n  \u003ca href=\"https://www.reddit.com/r/kubernetes/comments/1rzyhip/kubernetes_is_beautiful/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKubernetes is beautiful.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKubernetes is beautiful.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eReddit \u0026middot; reddit.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a fantastic progression through kuberentes concepts.  From running a pod, to making it resiliant, holding secrets, accepting traffic, and autoscaling.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.reddit.com/r/kubernetes/comments/1rzyhip/kubernetes_beautiful/",
      "date_published": "2026-03-23T21:29:40Z",
      "date_modified": "2026-03-23T21:29:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/move-zmk-keyboard-to-new-bluetooth-adapter/",
      "url": "https://waylonwalker.com/move-zmk-keyboard-to-new-bluetooth-adapter/",
      "title": "move zmk keyboard to new bluetooth adapter",
      "content_html": "\u003cp\u003eI’ve been having issue with my keyboard disconnecting to my main desktop for\nawhile.  Today I got a cheap bluetooh dongle in and am giving it a run this\nweek to see how things go.  The first step was to move it to the new adapter.\nI’ve never had multiple adapters installed so this was a new to me process.\u003c/p\u003e\n\u003cp\u003eI was able to do it all with the same keyboard, It did require some juggling\nbetween usb and bluetooth modes pluging and unplugging, two keyboards would be\nsimpler to reason about.\u003c/p\u003e\n\u003cp\u003eI can’t be bothered to change my brain to think about this machine on a\ndifferent zmk profile it is of absolute importance for it to remain on the same\nprofile, otherwise this would be a simple bind to another empty profile.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eWhy not use a cable on desktop?\u003c/p\u003e\n\u003cp\u003eI dont mind cable, and have used one on this setup for years, but I have\nactually been picking up and moving this keyboard and using it with\ndifferent devices.\u003c/p\u003e\n\u003cp\u003eI’ve got a big battery and performace cranked up, unless my machine is\nunder load I do not notice any key lag.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eI did it with bluetoothctl, I’m sure it could have been done with a gui like\n\u003ccode\u003eblueberry\u003c/code\u003e or \u003ccode\u003eblueman\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebluetoothctl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# list adapters\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elist\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eselect\u003c/span\u003e \u0026lt;old-adapter\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edevices\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# fin the MAC address of the device 42BLOCK\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eremove \u0026lt;42BLOCK_MAC\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow I plugged into usb. And \u003cstrong\u003eimportantly\u003c/strong\u003e cleared out the zmk profile.  If\nyou do not clear the profile your board does not go into pairing mode.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebluetoothctl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# switch adapters\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eselect\u003c/span\u003e \u0026lt;new-adapter\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epower on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eagent on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edefault-agent\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escan on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePut 42Block in pairing mode, \u003cspan class=\"k\"\u003ethen\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epair \u0026lt;42BLOCK_MAC\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etrust \u0026lt;42BLOCK_MAC\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAt this pint I saw this show up in the logs, I think there was some masking\nissues or something in zmk, output kept going out usb no matter what so I\ndisconnected the keyboard and typed the passkey in, and it worked.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003eagent\u003cspan class=\"o\"\u003e]\u003c/span\u003e Passkey: \u003cspan class=\"m\"\u003e540044\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eBoom, it just started working right away.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebluetoothctl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econnect \u0026lt;42BLOCK_MAC\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einfo \u0026lt;42BLOCK_MAC\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003escan off\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've been having issue with my keyboard disconnecting to my main desktop for\nawhile.  Today I got a cheap bluetooh dongle in and am giving it a run this\nweek to see how things go.  The first step was to move it to the new adapter.\nI've never had multiple adapters installed so this was a new to me process.\n\nI was able to do it all with the same keyboard, It did require some juggling\nbetween usb and bluetooth modes pluging and unplugging, two keyboards would be\nsimpler to reason about.\n\nI can't be bothered to change my brain to think about this machine on a\ndifferent zmk profile it is of absolute importance for it to remain on the same\nprofile, otherwise this would be a simple bind to another empty profile.\n\n!!! note \"Why not use a cable on desktop?\"\n\n    I dont mind cable, and have used one on this setup for years, but I have\n    actually been picking up and moving this keyboard and using it with\n    different devices.\n\n    I've got a big battery and performace cranked up, unless my machine is\n    under load I do not notice any key lag.\n\nI did it with bluetoothctl, I'm sure it could have been done with a gui like\n`blueberry` or `blueman`.\n\n``` bash\nbluetoothctl\n# list adapters\nlist\nselect \u003cold-adapter\u003e\ndevices\n# fin the MAC address of the device 42BLOCK\nremove \u003c42BLOCK_MAC\u003e\n```\n\nNow I plugged into usb. And **importantly** cleared out the zmk profile.  If\nyou do not clear the profile your board does not go into pairing mode.\n\n``` bash\nbluetoothctl\n# switch adapters\nselect \u003cnew-adapter\u003e\npower on\nagent on\ndefault-agent\nscan on\nPut 42Block in pairing mode, then:\npair \u003c42BLOCK_MAC\u003e\ntrust \u003c42BLOCK_MAC\u003e\n```\n\nAt this pint I saw this show up in the logs, I think there was some masking\nissues or something in zmk, output kept going out usb no matter what so I\ndisconnected the keyboard and typed the passkey in, and it worked.\n\n``` bash\n[agent] Passkey: 540044\n```\n\nBoom, it just started working right away.\n\n``` bash\nbluetoothctl\nconnect \u003c42BLOCK_MAC\u003e\ninfo \u003c42BLOCK_MAC\u003e\nscan off\nexit\n```\n",
      "summary": "I've been having issue with my keyboard disconnecting to my main desktop for awhile. Today I got a cheap bluetooh dongle in and am giving it a run this week...",
      "date_published": "2026-03-23T17:59:59Z",
      "date_modified": "2026-03-23T17:59:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "zmk"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-949/",
      "url": "https://waylonwalker.com/thought-949/",
      "title": "💭 More Details Than You Probably Wanted to Know About Recent Upd...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2026/notes-site-updates/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMore Details Than You Probably Wanted to Know About Recent Updates to My Notes Site\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI love the level of thought that Jim has put into these changes and making sure that urls don’t change.  I’ve got a big change in flight to my main site and this is one of the reasons that I’ve been sitting on it so long.  I want to make sure urls arent broken, redirects work as they should, and there are no 404’s from existing urls.  Currently the new version only exists on a separate deployement \u003ca href=\"https://go.waylonwalker.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/go.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/go.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://go.waylonwalker.com/\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI also added the ability to “shuffle” between posts. This is mostly for myself. I like to randomly jump through notes I’ve published in the past for reoccurring inspiration\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eLove this idea and have it on my new site already as well, and have really enjoyed using it by pressing it a dozen or so times over the course of a few sessions.  It highlights that I have too many posts like stars and thoughts and I should do some weighting to main posts.  mine is at \u003ca href=\"https://go.waylonwalker.com/random/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/go.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/go.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://go.waylonwalker.com/random/\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2026/notes-site-updates/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMore Details Than You Probably Wanted to Know About Recent Updates to My Notes Site\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI love the level of thought that Jim has put into these changes and making sure that urls don't change.  I've got a big change in flight to my main site and this is one of the reasons that I've been sitting on it so long.  I want to make sure urls arent broken, redirects work as they should, and there are no 404's from existing urls.  Currently the new version only exists on a separate deployement https://go.waylonwalker.com/\n\n\u003e I also added the ability to “shuffle” between posts. This is mostly for myself. I like to randomly jump through notes I’ve published in the past for reoccurring inspiration\n\nLove this idea and have it on my new site already as well, and have really enjoyed using it by pressing it a dozen or so times over the course of a few sessions.  It highlights that I have too many posts like stars and thoughts and I should do some weighting to main posts.  mine is at https://go.waylonwalker.com/random/\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/2026/notes-site-updates/",
      "date_published": "2026-03-23T12:26:22Z",
      "date_modified": "2026-03-23T12:26:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-948/",
      "url": "https://waylonwalker.com/thought-948/",
      "title": "💭 Notes – 06:34 Mon 23 Mar 2026 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2026-03-23T06:34Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 06:34 Mon 23 Mar 2026 — Notes – 06:34 Mon 23 Mar 2026\" loading=\"lazy\"/ data-glightbox=\"description: Notes – 06:34 Mon 23 Mar 2026 — Notes – 06:34 Mon 23 Mar 2026\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 06:34 Mon 23 Mar 2026\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 06:34 Mon 23 Mar 2026\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDoes anyone think fast-code will continue to pay the same salary? The answer isn’t to switch your brain off during your McCode shift and write a poem after work. Your job will be replaced by a Banglasdeshi slop-shop if AI improves (which is inevitable, apparently). Possibly the same sweatshop that loomed my £3 T-shirt. The Luddites didn’t accept their fate so easily.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eDavid has some good points here, but I’m feeling the opposite direction a bit.  Execs have always liked keeping the PM’s and the people steering the ship close by and were willing to farm out more and more grunt work.  It feels like we are in a weird phase where there used to be a big group of people paid to write code.   A few of them are exceptionally good at it and will remain.  There will be a need for these people everywhere.  Somehow we still need people hand editing assembly code optimizations, fortran, and cobol today.  Those industries largely moved on, but a few great ones remain.  I think this fast-code slop factory is going to be a  short forgotten time in history, but no one yet knows what’s next.  We are all waiting to find out.  Just with anything there is still value in doing it by hand and understanding it at a deep level, but its quickly becoming hobby work.  The things that most people code, things like CRUD apps do not require a special skill.  They are largely replicating existing good patterns on frameworks to implement business logic that are custom to the app.  There is no way of getting around the latter.  Someone will always need to understand the business logic and be able to “sign off” and assert that it does the thing the business needs.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2026-03-23T06:34Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 06:34 Mon 23 Mar 2026 — Notes – 06:34 Mon 23 Mar 2026\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 06:34 Mon 23 Mar 2026\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 06:34 Mon 23 Mar 2026\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Does anyone think fast-code will continue to pay the same salary? The answer isn’t to switch your brain off during your McCode shift and write a poem after work. Your job will be replaced by a Banglasdeshi slop-shop if AI improves (which is inevitable, apparently). Possibly the same sweatshop that loomed my £3 T-shirt. The Luddites didn’t accept their fate so easily.\n\nDavid has some good points here, but I'm feeling the opposite direction a bit.  Execs have always liked keeping the PM's and the people steering the ship close by and were willing to farm out more and more grunt work.  It feels like we are in a weird phase where there used to be a big group of people paid to write code.   A few of them are exceptionally good at it and will remain.  There will be a need for these people everywhere.  Somehow we still need people hand editing assembly code optimizations, fortran, and cobol today.  Those industries largely moved on, but a few great ones remain.  I think this fast-code slop factory is going to be a  short forgotten time in history, but no one yet knows what's next.  We are all waiting to find out.  Just with anything there is still value in doing it by hand and understanding it at a deep level, but its quickly becoming hobby work.  The things that most people code, things like CRUD apps do not require a special skill.  They are largely replicating existing good patterns on frameworks to implement business logic that are custom to the app.  There is no way of getting around the latter.  Someone will always need to understand the business logic and be able to \"sign off\" and assert that it does the thing the business needs.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/notes/2026-03-23T06:34Z/",
      "date_published": "2026-03-23T09:07:38Z",
      "date_modified": "2026-03-23T09:07:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/i-dont-want-someone-else-running-my-agents/",
      "url": "https://waylonwalker.com/i-dont-want-someone-else-running-my-agents/",
      "title": "I don't want someone else running my agents",
      "content_html": "\u003cp\u003eI don’t want to review the pr, I dont want to fight the mass of changes\nclobbered across the codebase.  I want to own my platform.  With everything\nchanging with agents writing more code than I can imagine in a day work looks\ndifferent now.  I still want to work with real people.  I want to collaborate\non ideas.  I want someone to bounce ideas off with.  I want someone else in the\nwar room with me on launch day, or when the whole thing goes down.  But I don’t\nthem slopping in my sandbox, if someone is going to be stirring the slop in my\nproduct I want it to be me.  Work is feeling different now.  New lines need to\nbe drawn in new directions.  Expectations are changing, the way work is\ncompleted is changing, and we are all here trying to figure out what this looks\nlike moving forward.\u003c/p\u003e\n",
      "content_text": "\nI don't want to review the pr, I dont want to fight the mass of changes\nclobbered across the codebase.  I want to own my platform.  With everything\nchanging with agents writing more code than I can imagine in a day work looks\ndifferent now.  I still want to work with real people.  I want to collaborate\non ideas.  I want someone to bounce ideas off with.  I want someone else in the\nwar room with me on launch day, or when the whole thing goes down.  But I don't\nthem slopping in my sandbox, if someone is going to be stirring the slop in my\nproduct I want it to be me.  Work is feeling different now.  New lines need to\nbe drawn in new directions.  Expectations are changing, the way work is\ncompleted is changing, and we are all here trying to figure out what this looks\nlike moving forward.\n",
      "summary": "I don't want to review the pr, I dont want to fight the mass of changes clobbered across the codebase. I want to own my platform. With everything changing...",
      "date_published": "2026-03-23T00:00:00Z",
      "date_modified": "2026-03-23T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai"
      ]
    },
    {
      "id": "https://waylonwalker.com/mohebifar-tooscut/",
      "url": "https://waylonwalker.com/mohebifar-tooscut/",
      "title": "⭐ mohebifar tooscut",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/mohebifar/tooscut\" 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\"\u003etooscut\u003c/a\u003e by \u003ca href=\"https://github.com/mohebifar\" 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\"\u003emohebifar\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eProfessional video editing, right in your browser. Made with Rust, WebGPU, WASM, and Tanstack Start.\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [tooscut](https://github.com/mohebifar/tooscut) by [mohebifar](https://github.com/mohebifar).\n\nProfessional video editing, right in your browser. Made with Rust, WebGPU, WASM, and Tanstack Start.\n",
      "summary": "Looking for inspiration? tooscut by mohebifar.",
      "date_published": "2026-03-22T22:18:23Z",
      "date_modified": "2026-03-22T22:18:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-38/",
      "url": "https://waylonwalker.com/ping-38/",
      "title": "Ping 38",
      "content_html": "\u003cp\u003eWhen agents do the work its harder to recognize a dead end.\u003c/p\u003e\n",
      "content_text": "\nWhen agents do the work its harder to recognize a dead end.\n",
      "summary": "When agents do the work its harder to recognize a dead end.",
      "date_published": "2026-03-22T09:56:48Z",
      "date_modified": "2026-03-22T09:56:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/kraanzu-smassh/",
      "url": "https://waylonwalker.com/kraanzu-smassh/",
      "title": "⭐ kraanzu smassh",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/kraanzu\" 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\"\u003ekraanzu’s\u003c/a\u003e project \u003ca href=\"https://github.com/kraanzu/smassh\" 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\"\u003esmassh\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eSmassh your Keyboard, TUI Edition\u003c/p\u003e\n",
      "content_text": "\nI like [kraanzu's](https://github.com/kraanzu) project [smassh](https://github.com/kraanzu/smassh).\n\nSmassh your Keyboard, TUI Edition\n",
      "summary": "I like kraanzu's project smassh.",
      "date_published": "2026-03-21T16:56:20Z",
      "date_modified": "2026-03-21T16:56:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/kittenml-kittentts/",
      "url": "https://waylonwalker.com/kittenml-kittentts/",
      "title": "⭐ KittenML KittenTTS",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/KittenML/KittenTTS\" 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\"\u003eKittenTTS\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/KittenML\" 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\"\u003eKittenML\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eState-of-the-art TTS model under 25MB 😻\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [KittenTTS](https://github.com/KittenML/KittenTTS), an amazing project by [KittenML](https://github.com/KittenML). It's worth exploring!\n\n State-of-the-art TTS model under 25MB 😻 \n",
      "summary": "I'm really excited about KittenTTS, an amazing project by KittenML. It's worth exploring!",
      "date_published": "2026-03-20T03:37:04Z",
      "date_modified": "2026-03-20T03:37:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-35b/",
      "url": "https://waylonwalker.com/ping-35b/",
      "title": "Learning to agent",
      "content_html": "\u003cp\u003eAll we are hearing lately is Agents are the future, something flipped around\nNOV 2025 with opus 4.5.  It turned snake oil into action.  It changed\nprogrammers will be replaced in 6 months to now.  Not all of them, but probably\nmost of us who are not extraordinary.  If you fall into the camp of folks not\nadopting, I got no issues with that.  No one is twisting your arm, well maybe\nyour boss or cto is, thats on them.  I don’t mean to say this is the future as\nin, get in or get left behind.  I mean it as this is where your other engineers\nprobably are, the junior to mid level engineers are here.  If you are not\ntrying to meet them where they are how are you going to lead them.\u003c/p\u003e\n",
      "content_text": "\nAll we are hearing lately is Agents are the future, something flipped around\nNOV 2025 with opus 4.5.  It turned snake oil into action.  It changed\nprogrammers will be replaced in 6 months to now.  Not all of them, but probably\nmost of us who are not extraordinary.  If you fall into the camp of folks not\nadopting, I got no issues with that.  No one is twisting your arm, well maybe\nyour boss or cto is, thats on them.  I don't mean to say this is the future as\nin, get in or get left behind.  I mean it as this is where your other engineers\nprobably are, the junior to mid level engineers are here.  If you are not\ntrying to meet them where they are how are you going to lead them.\n",
      "summary": "All we are hearing lately is Agents are the future, something flipped around NOV 2025 with opus 4.5. It turned snake oil into action. It changed programmers...",
      "date_published": "2026-03-19T20:53:08Z",
      "date_modified": "2026-03-19T20:53:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-35/",
      "url": "https://waylonwalker.com/ping-35/",
      "title": "Studio Ghibli Images in the Wild",
      "content_html": "\u003cp\u003eI just stumbled into an image in my org chart of someone who clearly turned\nthemself into a Studio Ghibli character in chatgpt during the small window of\ntime that it seemed to do this for everything.  Its clearly the aesthetic that\nIt would do by default for that week, then would not do it whatsoever.  I’d\nlink it, but its from an org chart.  I mostly found it interesting how we now\nhave these recognizable artifacts from specific moments in time.\u003c/p\u003e\n",
      "content_text": "\nI just stumbled into an image in my org chart of someone who clearly turned\nthemself into a Studio Ghibli character in chatgpt during the small window of\ntime that it seemed to do this for everything.  Its clearly the aesthetic that\nIt would do by default for that week, then would not do it whatsoever.  I'd\nlink it, but its from an org chart.  I mostly found it interesting how we now\nhave these recognizable artifacts from specific moments in time.\n",
      "summary": "I just stumbled into an image in my org chart of someone who clearly turned themself into a Studio Ghibli character in chatgpt during the small window of...",
      "date_published": "2026-03-19T20:49:26Z",
      "date_modified": "2026-03-19T20:49:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-36/",
      "url": "https://waylonwalker.com/ping-36/",
      "title": "Ping 36",
      "content_html": "\u003cp\u003eI feel like there’s an inevitable phase to every ai/agentic worked feature/epic\nwhere you have to get in and chat with it 2025 style (except it actually works\nand doesn’t turn your project to shit).  Planning is great, planning out epics\nfor full orchestrator’s to churn for hours on is amazing, but it always leaves\nme with a handful of thorns multiplied by complexity level of things that I\ncan shout a list of 6 items at a time that it can one shot.  I haven’t seen\nanyone put a name to this phase yet, so I’m going to call it the UAT phase\nfor now and it seems like a very necessary part of the SDLC.  It was\nimportant before, but feels more so now as engineers distance themselves\nfrom the implementation.\u003c/p\u003e\n",
      "content_text": "\nI feel like there's an inevitable phase to every ai/agentic worked feature/epic\nwhere you have to get in and chat with it 2025 style (except it actually works\nand doesn't turn your project to shit).  Planning is great, planning out epics\nfor full orchestrator's to churn for hours on is amazing, but it always leaves\nme with a handful of thorns multiplied by complexity level of things that I\ncan shout a list of 6 items at a time that it can one shot.  I haven't seen\nanyone put a name to this phase yet, so I'm going to call it the UAT phase\nfor now and it seems like a very necessary part of the SDLC.  It was\nimportant before, but feels more so now as engineers distance themselves\nfrom the implementation.\n",
      "summary": "I feel like there's an inevitable phase to every ai/agentic worked feature/epic where you have to get in and chat with it 2025 style (except it actually...",
      "date_published": "2026-03-19T17:42:56Z",
      "date_modified": "2026-03-19T17:42:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-34/",
      "url": "https://waylonwalker.com/ping-34/",
      "title": "Research, Plan, Implement",
      "content_html": "\u003cp\u003eI heard this term yesterday, and I think a lot of people are missing out on\nstep 1.  It’s important to experiment with agents and learn what they can do\nwell and what they cant, this changes every couple of weeks at this point.  You\nmight be spending hours planning something that could have been implemented\nright away, or maybe wasted time planning something that needed more research,\nmore context engineering.  Agents start fresh every session, they cant remember\nwhat you asked them to do 5 minutes ago in the other session, getting the right\ntokens in session is critical.\u003c/p\u003e\n",
      "content_text": "\nI heard this term yesterday, and I think a lot of people are missing out on\nstep 1.  It's important to experiment with agents and learn what they can do\nwell and what they cant, this changes every couple of weeks at this point.  You\nmight be spending hours planning something that could have been implemented\nright away, or maybe wasted time planning something that needed more research,\nmore context engineering.  Agents start fresh every session, they cant remember\nwhat you asked them to do 5 minutes ago in the other session, getting the right\ntokens in session is critical.\n",
      "summary": "I heard this term yesterday, and I think a lot of people are missing out on step 1. It's important to experiment with agents and learn what they can do well...",
      "date_published": "2026-03-18T20:49:26Z",
      "date_modified": "2026-03-18T20:49:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/dot-dockerenv/",
      "url": "https://waylonwalker.com/dot-dockerenv/",
      "title": "dot dockerenv",
      "content_html": "\u003cp\u003eToday I learned that docker creates an empty \u003ccode\u003e/.dockerenv\u003c/code\u003e file to indicate that\nyou are running in a docker container.  Other runtimes like podman commonly use\n\u003ccode\u003e/run/.containerenv\u003c/code\u003e.  kubernetes uses neither of these, the most common way to\ndetect if you are running in kubernetes is to check for the presence of the\n\u003ccode\u003eKUBERNETES_SERVICE_HOST\u003c/code\u003e environment variable.  There will also be a directory\nat \u003ccode\u003e/var/run/secrets/kubernetes.io/serviceaccount\u003c/code\u003e that contains the service\naccount credentials if you are running in kubernetes.\u003c/p\u003e\n",
      "content_text": "\nToday I learned that docker creates an empty `/.dockerenv` file to indicate that\nyou are running in a docker container.  Other runtimes like podman commonly use\n`/run/.containerenv`.  kubernetes uses neither of these, the most common way to\ndetect if you are running in kubernetes is to check for the presence of the\n`KUBERNETES_SERVICE_HOST` environment variable.  There will also be a directory\nat `/var/run/secrets/kubernetes.io/serviceaccount` that contains the service\naccount credentials if you are running in kubernetes.\n\n",
      "summary": "Today I learned that docker creates an empty file to indicate that you are running in a docker container. Other runtimes like podman commonly use ....",
      "date_published": "2026-03-18T10:07:16Z",
      "date_modified": "2026-03-18T10:07:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "docker",
        "kubernetes"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-32/",
      "url": "https://waylonwalker.com/ping-32/",
      "title": "Context Poisoning Was There All Along",
      "content_html": "\u003cp\u003eI wrote some code by hand on Sunday.  Sat down with my son and started building\nout a game in pygame from scratch.  We went to google, we searched how to do\nsomething, we copy and pasted from the docs.  Not because we are dumb, but\nbecause we cant remember some aspects of the pygame api.  Now that these\npatterns are established we no longer have to google them, we simply grep our\ncodebase and replicate the pattern.  Easy right?  It’s funny that it took ai to\ncoin the term \u003ccode\u003econtext poisoning\u003c/code\u003e even though it was there all along.\u003c/p\u003e\n",
      "content_text": "\nI wrote some code by hand on Sunday.  Sat down with my son and started building\nout a game in pygame from scratch.  We went to google, we searched how to do\nsomething, we copy and pasted from the docs.  Not because we are dumb, but\nbecause we cant remember some aspects of the pygame api.  Now that these\npatterns are established we no longer have to google them, we simply grep our\ncodebase and replicate the pattern.  Easy right?  It's funny that it took ai to\ncoin the term `context poisoning` even though it was there all along.\n",
      "summary": "I wrote some code by hand on Sunday. Sat down with my son and started building out a game in pygame from scratch. We went to google, we searched how to do...",
      "date_published": "2026-03-17T21:10:38Z",
      "date_modified": "2026-03-17T21:10:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/tobi-qmd/",
      "url": "https://waylonwalker.com/tobi-qmd/",
      "title": "⭐ tobi qmd",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/tobi/qmd\" 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\"\u003eqmd\u003c/a\u003e, created by \u003ca href=\"https://github.com/tobi\" 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\"\u003etobi\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003emini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [qmd](https://github.com/tobi/qmd), created by [tobi](https://github.com/tobi).\n\nmini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local\n",
      "summary": "If you're into interesting projects, don't miss out on qmd, created by tobi.",
      "date_published": "2026-03-17T20:39:09Z",
      "date_modified": "2026-03-17T20:39:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ratdoux-orcaslicer-fullspectrum/",
      "url": "https://waylonwalker.com/ratdoux-orcaslicer-fullspectrum/",
      "title": "⭐ ratdoux OrcaSlicer-FullSpectrum",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/ratdoux/OrcaSlicer-FullSpectrum\" 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\"\u003eOrcaSlicer-FullSpectrum\u003c/a\u003e by \u003ca href=\"https://github.com/ratdoux\" 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\"\u003eratdoux\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eG-code generator for Snapmaker U1 with Full Spectrum layer blending\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [OrcaSlicer-FullSpectrum](https://github.com/ratdoux/OrcaSlicer-FullSpectrum) by [ratdoux](https://github.com/ratdoux).\n\nG-code generator for Snapmaker U1 with Full Spectrum layer blending\n",
      "summary": "Looking for inspiration? OrcaSlicer-FullSpectrum by ratdoux.",
      "date_published": "2026-03-17T20:33:28Z",
      "date_modified": "2026-03-17T20:33:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-33/",
      "url": "https://waylonwalker.com/ping-33/",
      "title": "Agents cannot replace the thinking, they only amplify it",
      "content_html": "\u003cp\u003eAgents cannot replace the thinking, they only amplify it.  If you set the\nagents off in the wrong direction that’s where they will go.  They will sprint\nthere faster than you can go.  This is ok, its one of their advantages, they\ncan give you signal quick.  Remember if they are off in the wrong direction\nmore research and planning is needed, and maybe a little bit more thinking on\nyour end to steer them in the right direction.\u003c/p\u003e\n",
      "content_text": "\nAgents cannot replace the thinking, they only amplify it.  If you set the\nagents off in the wrong direction that's where they will go.  They will sprint\nthere faster than you can go.  This is ok, its one of their advantages, they\ncan give you signal quick.  Remember if they are off in the wrong direction\nmore research and planning is needed, and maybe a little bit more thinking on\nyour end to steer them in the right direction.\n",
      "summary": "Agents cannot replace the thinking, they only amplify it. If you set the agents off in the wrong direction that's where they will go. They will sprint there...",
      "date_published": "2026-03-17T20:32:16Z",
      "date_modified": "2026-03-17T20:32:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/almost-cheesed-it-to-port-aquelite/",
      "url": "https://waylonwalker.com/shots/almost-cheesed-it-to-port-aquelite/",
      "title": "trailmakers pioneers second run - Almost Cheesed It To Port Aquelite",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/b0adaf31-0a54-4289-a129-0656cd830c62.mp4\" class=\"glightbox-link\" aria-label=\"Almost Cheesed It To Port Aquelite\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/b0adaf31-0a54-4289-a129-0656cd830c62.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/b0adaf31-0a54-4289-a129-0656cd830c62.mp4\" type=\"video/mp4\"\u003eAlmost Cheesed It To Port Aquelite\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI almost Cheesed It To Port Aquelite by spamming repawn, During my second trailmakers pioneers run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Almost Cheesed It To Port Aquelite](https://dropper.waylonwalker.com/file/b0adaf31-0a54-4289-a129-0656cd830c62.mp4)\n\n\u003e I almost Cheesed It To Port Aquelite by spamming repawn, During my second trailmakers pioneers run.\n",
      "summary": "Almost Cheesed It To Port Aquelite",
      "image": "https://dropper.waylonwalker.com/file/b0adaf31-0a54-4289-a129-0656cd830c62.mp4",
      "date_published": "2026-03-17T20:22:52Z",
      "date_modified": "2026-03-17T20:22:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots",
        "trailmakers"
      ]
    },
    {
      "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\" aria-label=\"Its A Trap\"\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\u003cfigcaption\u003e\u003cp\u003eIts A Trap, abmush with Adiral Leadhead, During my second trailmakers pioneers run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\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\" aria-label=\"Collection Party Balloon\"\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\u003cfigcaption\u003e\u003cp\u003eCollecting Party Balloon, During my second trailmakers pioneers run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\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\" aria-label=\"Collection L Bracket\"\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\u003cfigcaption\u003e\u003cp\u003eCollecting the L Bracket, During my second trailmakers pioneers run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\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\" aria-label=\"Wyatt Hits The Gap\"\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\u003cfigcaption\u003e\u003cp\u003eWyatt Hits The Gap, During my second trailmakers pioneers run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\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/thought-947/",
      "url": "https://waylonwalker.com/thought-947/",
      "title": "💭 ten year computer",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://alexwlchan.net/2026/ten-year-computer/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/alexwlchan.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/alexwlchan.net.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDreaming of a ten-year computer – alexwlchan\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ealexwlchan.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat gusto here from someone looking to fill landfills less.  Get more use from what they paid for.  Dodge some tough times in the hardware industry.  I’m going to argue that the 10 year computer is not one bit crazy right now.  No idea what the future entails, if local llms get good enough to really get so useful they feel required this could easily change.  One issue I had with the post as they are looking to get a machine for the next 10 years is they were so focused on themself that they missed the point.  They were so focused on buying something that would work for them for 10 years that they bought something brand new rather than thinking about the bigger issue of how do we get hardware to last 10+ years.  Some factor of this involves giving our devices a second life.  Two things went wrong here.  First it appears they they have a perfectly good imac with a broken screen.  I know nothing about apple/imac, assuming that the screen is toast and unrepairable, I know you can ssh into a mac this feels like good potential for server hardware.  Next they purchased a brand new mac mini.  Hardware has been good for a long time, there is no need to buy new right now, especially now.  I haven’t bought a new machine in years and most of my hardware is second hand cobbled together stuff, and has no issues.  I’ve got one machine thats 16 years old, 2 machines at 9 years, one at 8 years.  To get here they need to be repairable, designed to last, and probably no run windows as they will release something that renders them too slow or require new hardware for security that wont work.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://alexwlchan.net/2026/ten-year-computer/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDreaming of a ten-year computer – alexwlchan\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ealexwlchan.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGreat gusto here from someone looking to fill landfills less.  Get more use from what they paid for.  Dodge some tough times in the hardware industry.  I'm going to argue that the 10 year computer is not one bit crazy right now.  No idea what the future entails, if local llms get good enough to really get so useful they feel required this could easily change.  One issue I had with the post as they are looking to get a machine for the next 10 years is they were so focused on themself that they missed the point.  They were so focused on buying something that would work for them for 10 years that they bought something brand new rather than thinking about the bigger issue of how do we get hardware to last 10+ years.  Some factor of this involves giving our devices a second life.  Two things went wrong here.  First it appears they they have a perfectly good imac with a broken screen.  I know nothing about apple/imac, assuming that the screen is toast and unrepairable, I know you can ssh into a mac this feels like good potential for server hardware.  Next they purchased a brand new mac mini.  Hardware has been good for a long time, there is no need to buy new right now, especially now.  I haven't bought a new machine in years and most of my hardware is second hand cobbled together stuff, and has no issues.  I've got one machine thats 16 years old, 2 machines at 9 years, one at 8 years.  To get here they need to be repairable, designed to last, and probably no run windows as they will release something that renders them too slow or require new hardware for security that wont work.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://alexwlchan.net/2026/ten-year-computer/",
      "date_published": "2026-03-17T09:32:50Z",
      "date_modified": "2026-03-17T09:32:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tech",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-946/",
      "url": "https://waylonwalker.com/thought-946/",
      "title": "💭 The future of Coding and Code Quality - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"baIHCeccbbw\" title=\"The future of Coding and Code Quality\" playlabel=\"Play: The future of Coding and Code Quality\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eVery interesting takes from @thdxr in this interview.  A lot has been hashed out by others all over the place, but a hot take here is that code quality is higher than ever right now.  Codebases are becoming more consistent than ever.   If you are not starting with a good consistent base from the start you are poising your context and doomed to fail and have all the common failures of ai written code.  He still reads almost every PR, and will read all of the code eventually.  There are a few cases where reading the PR is not worthwhile only when its low stakes, knows that good patterns have been established and followed.  He argues that someone needs to be the expert of the code and of the product still and fears that too many people not looking at prs will fail companies.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"baIHCeccbbw\" title=\"The future of Coding and Code Quality\" playlabel=\"Play: The future of Coding and Code Quality\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nVery interesting takes from @thdxr in this interview.  A lot has been hashed out by others all over the place, but a hot take here is that code quality is higher than ever right now.  Codebases are becoming more consistent than ever.   If you are not starting with a good consistent base from the start you are poising your context and doomed to fail and have all the common failures of ai written code.  He still reads almost every PR, and will read all of the code eventually.  There are a few cases where reading the PR is not worthwhile only when its low stakes, knows that good patterns have been established and followed.  He argues that someone needs to be the expert of the code and of the product still and fears that too many people not looking at prs will fail companies.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=baIHCeccbbw",
      "date_published": "2026-03-17T09:07:41Z",
      "date_modified": "2026-03-17T09:07:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-31/",
      "url": "https://waylonwalker.com/ping-31/",
      "title": "Thinking about ai productivity again",
      "content_html": "\u003cp\u003eThinking about AI productivity again.  It’s allowing massive amounts of work to\nget done, to levels that humans cannot physically type out in some cases.  But\nnot all of this work is necessarily high value work.  Right now I’m working on\none of the biggest PRs to an internal cli library.  Probably the largest PR\nI’ve ever done professionally.  It touches all of the cli, refactors every\ncommand, reaches into the business logic layers to drive deeper separation.  I\nreaches into the common layers to drive consistency.  It ensures that every\ncommand (50 or so) has similar flags, supports –plain, –no-color.  It specs\nout contracts to ensure that data goes out stdout, any extra goes out stderr.\nThis makes everything unix pipe friendly. There was quite a bit of research and\nprep that went in, that turns out to already be distilled down into clig.dev.\nThe point is that this is all good work.  It will make the product consistent,\nrepeatable, expected, and most of all boring.  Most of the time, it will just\nwork.  Since we did it ahead of a lot of other agentic work on the product its\nestablishing good patterns for the product moving forward.  But its low value\nwork.  We wouldn’t have likely put humans on this work wholesale and fixed\ncritical paths as they came up.  Its not cutting cost, selling more product, or\ndriving critical business decisions.  Yes it’s worth it now, but it would not\nhave bee in the past.\u003c/p\u003e\n",
      "content_text": "\nThinking about AI productivity again.  It's allowing massive amounts of work to\nget done, to levels that humans cannot physically type out in some cases.  But\nnot all of this work is necessarily high value work.  Right now I'm working on\none of the biggest PRs to an internal cli library.  Probably the largest PR\nI've ever done professionally.  It touches all of the cli, refactors every\ncommand, reaches into the business logic layers to drive deeper separation.  I\nreaches into the common layers to drive consistency.  It ensures that every\ncommand (50 or so) has similar flags, supports --plain, --no-color.  It specs\nout contracts to ensure that data goes out stdout, any extra goes out stderr.\nThis makes everything unix pipe friendly. There was quite a bit of research and\nprep that went in, that turns out to already be distilled down into clig.dev.\nThe point is that this is all good work.  It will make the product consistent,\nrepeatable, expected, and most of all boring.  Most of the time, it will just\nwork.  Since we did it ahead of a lot of other agentic work on the product its\nestablishing good patterns for the product moving forward.  But its low value\nwork.  We wouldn't have likely put humans on this work wholesale and fixed\ncritical paths as they came up.  Its not cutting cost, selling more product, or\ndriving critical business decisions.  Yes it's worth it now, but it would not\nhave bee in the past.\n\n",
      "summary": "Thinking about AI productivity again. It's allowing massive amounts of work to get done, to levels that humans cannot physically type out in some cases. But...",
      "date_published": "2026-03-16T21:01:44Z",
      "date_modified": "2026-03-16T21:01:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "llm",
        "ping"
      ]
    },
    {
      "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\" aria-label=\"dummy13 on a skateboard\"\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\u003cfigcaption\u003e\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\u003c/figcaption\u003e\u003c/figure\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/shots/goal-the-great-fail-1/",
      "url": "https://waylonwalker.com/shots/goal-the-great-fail-1/",
      "title": "Groal The Great Fail 1",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7722f9c4-8910-4811-a5b7-86ae7051ca0a.mp4\" class=\"glightbox-link\" aria-label=\"Groal The Great Fail 1\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/7722f9c4-8910-4811-a5b7-86ae7051ca0a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/7722f9c4-8910-4811-a5b7-86ae7051ca0a.mp4\" type=\"video/mp4\"\u003eGroal The Great Fail 1\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eGroal The Great Fail 1\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Groal The Great Fail 1](https://dropper.waylonwalker.com/file/7722f9c4-8910-4811-a5b7-86ae7051ca0a.mp4)\n\n\u003e Groal The Great Fail 1\n",
      "summary": "Groal The Great Fail 1",
      "image": "https://dropper.waylonwalker.com/file/7722f9c4-8910-4811-a5b7-86ae7051ca0a.mp4",
      "date_published": "2026-03-15T20:33:06Z",
      "date_modified": "2026-03-15T20:33:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/goal-the-great-fail-2/",
      "url": "https://waylonwalker.com/shots/goal-the-great-fail-2/",
      "title": "Groal The Great Fail 2",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/73bf21e9-bb8f-48f0-b2b5-840a1beec270.mp4\" class=\"glightbox-link\" aria-label=\"Groal The Great Fail 2\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/73bf21e9-bb8f-48f0-b2b5-840a1beec270.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/73bf21e9-bb8f-48f0-b2b5-840a1beec270.mp4\" type=\"video/mp4\"\u003eGroal The Great Fail 2\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eGroal The Great Fail 2\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Groal The Great Fail 2](https://dropper.waylonwalker.com/file/73bf21e9-bb8f-48f0-b2b5-840a1beec270.mp4)\n\n\u003e Groal The Great Fail 2\n",
      "summary": "Groal The Great Fail 2",
      "image": "https://dropper.waylonwalker.com/file/73bf21e9-bb8f-48f0-b2b5-840a1beec270.mp4",
      "date_published": "2026-03-15T20:31:49Z",
      "date_modified": "2026-03-15T20:31:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-945/",
      "url": "https://waylonwalker.com/thought-945/",
      "title": "💭 Do You Have Token anxiety? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ZJEnQOsMtsU\" title=\"What is wrong with us?!\" playlabel=\"Play: What is wrong with us?!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eKids are leaving the party early, not drinking, cant watch netflix without the laptop open.  They are leaving the party early to check on their agents.  I get it, that feeling that you need to eek out one more prompt, keep your agents running. if they arent running what are you even doing.  If not you 6 others are ready to pass you up.  The timeline to be first has shrunk to nothing but unachievable.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ZJEnQOsMtsU\" title=\"What is wrong with us?!\" playlabel=\"Play: What is wrong with us?!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nKids are leaving the party early, not drinking, cant watch netflix without the laptop open.  They are leaving the party early to check on their agents.  I get it, that feeling that you need to eek out one more prompt, keep your agents running. if they arent running what are you even doing.  If not you 6 others are ready to pass you up.  The timeline to be first has shrunk to nothing but unachievable.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=ZJEnQOsMtsU",
      "date_published": "2026-03-15T09:27:15Z",
      "date_modified": "2026-03-15T09:27:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/cyxzdev-uncodixfy/",
      "url": "https://waylonwalker.com/cyxzdev-uncodixfy/",
      "title": "⭐ cyxzdev Uncodixfy",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/cyxzdev/Uncodixfy\" 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\"\u003eUncodixfy\u003c/a\u003e by \u003ca href=\"https://github.com/cyxzdev\" 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\"\u003ecyxzdev\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003ethe holly uncodexify instructions - letting GPT create uncodexified UI\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [Uncodixfy](https://github.com/cyxzdev/Uncodixfy) by [cyxzdev](https://github.com/cyxzdev), and it's truly impressive.\n\nthe holly uncodexify instructions - letting GPT create uncodexified UI\n",
      "summary": "I recently discovered Uncodixfy by cyxzdev, and it's truly impressive.",
      "date_published": "2026-03-13T01:26:23Z",
      "date_modified": "2026-03-13T01:26:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-944/",
      "url": "https://waylonwalker.com/thought-944/",
      "title": "💭 No one under 18 installs Linux",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"1HeALnI-gVg\" title=\"✂️ No one under 18 installs Linux\" playlabel=\"Play: ✂️ No one under 18 installs Linux\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e😂 Should I be concerned that My 12yo installed Arch BTW on his own?\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"1HeALnI-gVg\" title=\"✂️ No one under 18 installs Linux\" playlabel=\"Play: ✂️ No one under 18 installs Linux\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n😂 Should I be concerned that My 12yo installed Arch BTW on his own?\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtube.com/clip/UgkxVmrLKcNieh6FffrnSu2-iXD8SVFzSCzj?si=rV4k2piZM3Jcq9w0",
      "date_published": "2026-03-09T11:46:15Z",
      "date_modified": "2026-03-09T11:46:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-943/",
      "url": "https://waylonwalker.com/thought-943/",
      "title": "💭 The web is bearable with RSS",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pluralistic.net/2026/03/07/reader-mode/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pluralistic.net.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pluralistic.net.jpg\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePluralistic: The web is bearable with RSS (07 Mar 2026) – Pluralistic: Daily links from Cory Doctorow\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epluralistic.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIt’s wild how much of a hit Google took from killing reader, almost any time I hear about killedbygoogle, reader is the top of the list.  Its the thing that we all remember being really good and the incumbants just did not match up.  Somehow we are here 13 years later still bitching about it, despite it only having a 6 year run.  You should probably get an rss reader, and follow some incredible people that make feeds.  Most sites that produce content have the ability to subscribe over rss.  Unlike @pluralistic.net, I dont read in my reader.  My reader is just a list of links out to the web and I typically read it how the author intended on their site.  I nod a long to Cory’s enshitified internet just as much as the next guy, I love text based interfaces, I despise  the bloat that js has brought on.  But I don’t believe all js is bad, I don’t turn it off, even though he has me questioning this now.  News sites kinda suck, we can agree there, but its rare that a small indie web creator has fully enshitified their site with js.  I don’t buy that.  Sub to the feeds.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pluralistic.net/2026/03/07/reader-mode/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePluralistic: The web is bearable with RSS (07 Mar 2026) – Pluralistic: Daily links from Cory Doctorow\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epluralistic.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIt's wild how much of a hit Google took from killing reader, almost any time I hear about killedbygoogle, reader is the top of the list.  Its the thing that we all remember being really good and the incumbants just did not match up.  Somehow we are here 13 years later still bitching about it, despite it only having a 6 year run.  You should probably get an rss reader, and follow some incredible people that make feeds.  Most sites that produce content have the ability to subscribe over rss.  Unlike @pluralistic.net, I dont read in my reader.  My reader is just a list of links out to the web and I typically read it how the author intended on their site.  I nod a long to Cory's enshitified internet just as much as the next guy, I love text based interfaces, I despise  the bloat that js has brought on.  But I don't believe all js is bad, I don't turn it off, even though he has me questioning this now.  News sites kinda suck, we can agree there, but its rare that a small indie web creator has fully enshitified their site with js.  I don't buy that.  Sub to the feeds.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pluralistic.net/2026/03/07/reader-mode/",
      "date_published": "2026-03-09T09:00:55Z",
      "date_modified": "2026-03-09T09:00:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-942/",
      "url": "https://waylonwalker.com/thought-942/",
      "title": "💭 I need a new blog to subscribe to. Know… | justin․searls․co",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justin.searls.co/takes/2026-03-08-23h18m29s/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://justin.searls.co/img/face.jpg\" alt=\"Justin Searls\n@searls — \nI need a new blog to subscribe to. Know any you think I\u0026#39;d like? E-mail me: justin@searls.co\" loading=\"lazy\"/ data-glightbox=\"description: Justin Searls\n@searls — \nI need a new blog to subscribe to. Know any you think I\u0026#39;d like? E-mail me: justin@searls.co\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eJustin Searls\n@searls\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e\nI need a new blog to subscribe to. Know any you think I\u0026#39;d like? E-mail me: justin@searls.co\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustin․searls․co · justin.searls.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSent Justin my list \u003ca href=\"https://go.waylonwalker.com/blogroll\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/go.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/go.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://go.waylonwalker.com/blogroll\u003c/a\u003e, will soon be on the main site, but right now its only on the go subdomain.  I’ve long had reader.waylonwalker.com, but thats soon going to be wrapped into the main site as well at /reader.\u003c/p\u003e\n\u003cp\u003eI’m interested to see what good stuff Justin gets and if you have any good ones to share reply.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justin.searls.co/takes/2026-03-08-23h18m29s/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://justin.searls.co/img/face.jpg\" alt=\"Justin Searls\n@searls — \nI need a new blog to subscribe to. Know any you think I\u0026#39;d like? E-mail me: justin@searls.co\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eJustin Searls\n@searls\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e\nI need a new blog to subscribe to. Know any you think I\u0026#39;d like? E-mail me: justin@searls.co\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustin․searls․co \u0026middot; justin.searls.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSent Justin my list https://go.waylonwalker.com/blogroll, will soon be on the main site, but right now its only on the go subdomain.  I've long had reader.waylonwalker.com, but thats soon going to be wrapped into the main site as well at /reader.\n\nI'm interested to see what good stuff Justin gets and if you have any good ones to share reply.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://justin.searls.co/takes/2026-03-08-23h18m29s/",
      "date_published": "2026-03-09T08:31:53Z",
      "date_modified": "2026-03-09T08:31:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-29/",
      "url": "https://waylonwalker.com/ping-29/",
      "title": "Did you even like to code?",
      "content_html": "\u003cp\u003eHere’s something I’ve been wrestling with lately.  I keep hearing people come\nto the realization that they never liked coding, they thought they did, but\nsecretly hated it the whole time.  I dont think I’ve ever kidded myself about\nthis.  I like building things.  I like having an idea and see it come to life.\nJust because I like the end product more, and that coding really was a means to\nan end, something I will never do again in the same capacity that I have in the\npast, does not mean I did not enjoy the art of solving problems by typing\nsyntax into a file to tell a computer how to solve a problem.\u003c/p\u003e\n",
      "content_text": "\nHere's something I've been wrestling with lately.  I keep hearing people come\nto the realization that they never liked coding, they thought they did, but\nsecretly hated it the whole time.  I dont think I've ever kidded myself about\nthis.  I like building things.  I like having an idea and see it come to life.\nJust because I like the end product more, and that coding really was a means to\nan end, something I will never do again in the same capacity that I have in the\npast, does not mean I did not enjoy the art of solving problems by typing\nsyntax into a file to tell a computer how to solve a problem.\n\n",
      "summary": "Here's something I've been wrestling with lately. I keep hearing people come to the realization that they never liked coding, they thought they did, but...",
      "date_published": "2026-03-07T20:59:39Z",
      "date_modified": "2026-03-07T20:59:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/credits/",
      "url": "https://waylonwalker.com/shots/credits/",
      "title": "Silksong Credits",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/251a07be-eb46-4a27-9317-1c7a673ba2b4.mp4\" class=\"glightbox-link\" aria-label=\"Credits\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/251a07be-eb46-4a27-9317-1c7a673ba2b4.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/251a07be-eb46-4a27-9317-1c7a673ba2b4.mp4\" type=\"video/mp4\"\u003eCredits\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eToday I rolled the credits to Silksong, far from the end, still finishing the\nplaythrough.  also I walked away and let it sit idle and it ate my play\nbuffer so I lost the full boss fight.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Credits](https://dropper.waylonwalker.com/file/251a07be-eb46-4a27-9317-1c7a673ba2b4.mp4)\n\n\u003e Today I rolled the credits to Silksong, far from the end, still finishing the\n\u003e playthrough.  also I walked away and let it sit idle and it ate my play\n\u003e buffer so I lost the full boss fight.\n",
      "summary": "Credits",
      "image": "https://dropper.waylonwalker.com/file/251a07be-eb46-4a27-9317-1c7a673ba2b4.mp4",
      "date_published": "2026-03-07T09:19:27Z",
      "date_modified": "2026-03-07T09:19:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-28/",
      "url": "https://waylonwalker.com/ping-28/",
      "title": "The only thing that seems interesting is AI right now",
      "content_html": "\u003cp\u003eThe only thing that seems interesting is AI right now, I’m writing less code,\nand I kinda just don’t care as much about the small open source stuff as I used\nto.  I enjoy reading about what other people are thinking, doing, creating.\nBut when I go to grab a podcast while I wait on my clankers its one talking\nabout how other people are using them, how to make them more secure, more\neffective, how the new models change things, what models are good at what.\nIt’s all so new and changes so fast.  Any sort of new open source project\nstarts out sus that it was just vibe coded anyways, So at the moment it feels\nlike ooh how did you get that, how do I make mine, and that the thing itself\nhas less value.  I hate that its this way, but it is.\u003c/p\u003e\n",
      "content_text": "\nThe only thing that seems interesting is AI right now, I'm writing less code,\nand I kinda just don't care as much about the small open source stuff as I used\nto.  I enjoy reading about what other people are thinking, doing, creating.\nBut when I go to grab a podcast while I wait on my clankers its one talking\nabout how other people are using them, how to make them more secure, more\neffective, how the new models change things, what models are good at what.\nIt's all so new and changes so fast.  Any sort of new open source project\nstarts out sus that it was just vibe coded anyways, So at the moment it feels\nlike ooh how did you get that, how do I make mine, and that the thing itself\nhas less value.  I hate that its this way, but it is.\n",
      "summary": "The only thing that seems interesting is AI right now, I'm writing less code, and I kinda just don't care as much about the small open source stuff as I used...",
      "date_published": "2026-03-06T20:55:26Z",
      "date_modified": "2026-03-06T20:55:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/tmk-3x6+3-gaming-keeb-sliced/",
      "url": "https://waylonwalker.com/shots/tmk-3x6+3-gaming-keeb-sliced/",
      "title": "Tmk 3x6+3 Gaming Keeb Sliced",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/0c4daa3e-8097-4e91-b54a-a3a84e1e0a48.mp4\" class=\"glightbox-link\" aria-label=\"tmk 3x6+3 gaming keeb sliced\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/0c4daa3e-8097-4e91-b54a-a3a84e1e0a48.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/0c4daa3e-8097-4e91-b54a-a3a84e1e0a48.mp4\" type=\"video/mp4\"\u003etmk 3x6+3 gaming keeb sliced\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eRunning through the layers of the tmx 3x6+s. gaming keeb.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![tmk 3x6+3 gaming keeb sliced](https://dropper.waylonwalker.com/file/0c4daa3e-8097-4e91-b54a-a3a84e1e0a48.mp4)\n\n\u003e Running through the layers of the tmx 3x6+s. gaming keeb.\n\n",
      "summary": "Running through the layers of the tmx 3x6+s. gaming keeb.",
      "image": "https://dropper.waylonwalker.com/file/0c4daa3e-8097-4e91-b54a-a3a84e1e0a48.mp4",
      "date_published": "2026-03-06T17:56:38Z",
      "date_modified": "2026-03-06T17:56:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/tmk-3x6+3-gaming-promo/",
      "url": "https://waylonwalker.com/shots/tmk-3x6+3-gaming-promo/",
      "title": "Tmk 3x6+3 Gaming Promo",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4\" class=\"glightbox-link\" aria-label=\"tmk 3x6+3 gaming promo\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4\" type=\"video/mp4\"\u003etmk 3x6+3 gaming promo\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePromo video for the tmk 3x5+3 gaming keyboard.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![tmk 3x6+3 gaming promo](https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4)\n\n\u003e Promo video for the tmk 3x5+3 gaming keyboard.\n\n",
      "summary": "Promo video for the tmk 3x5+3 gaming keyboard.",
      "image": "https://dropper.waylonwalker.com/file/f5769ee4-7094-4527-a27c-c4b9f3d58bc2.mp4",
      "date_published": "2026-03-06T17:48:47Z",
      "date_modified": "2026-03-06T17:48:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-27/",
      "url": "https://waylonwalker.com/ping-27/",
      "title": "It's all moving so fast",
      "content_html": "\u003cp\u003eAI is moving so fast this year its hard to keep up, I’ve written 3 or 4\nversions of one blog post to replace \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\" data-preview=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e, but it feels like\neverything changes before I can get it out.\u003c/p\u003e\n",
      "content_text": "\nAI is moving so fast this year its hard to keep up, I've written 3 or 4\nversions of one blog post to replace \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e, but it feels like\neverything changes before I can get it out.\n",
      "summary": "AI is moving so fast this year its hard to keep up, I've written 3 or 4 versions of one blog post to replace im-out-on-agents, but it feels like everything...",
      "date_published": "2026-03-05T20:53:59Z",
      "date_modified": "2026-03-05T20:53:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/tgo-v0.1.0/",
      "url": "https://waylonwalker.com/shots/tgo-v0.1.0/",
      "title": "Tgo V0.1.0",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp\" class=\"glightbox-link\" aria-label=\"tgo v0.1.0\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp\" alt=\"tgo v0.1.0\"/ data-glightbox=\"description: tgo v0.1.0\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003etgo v0.1.0, tmux session switcher written in go\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![tgo v0.1.0](https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp)\n\n\u003e tgo v0.1.0, tmux session switcher written in go\n\n",
      "summary": "tgo v0.1.0, tmux session switcher written in go",
      "image": "https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp",
      "date_published": "2026-03-04T21:19:47Z",
      "date_modified": "2026-03-04T21:19:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/i-built-a-tmux-session-switcher/",
      "url": "https://waylonwalker.com/i-built-a-tmux-session-switcher/",
      "title": "I Built A Tmux Session Switcher",
      "content_html": "\u003cp\u003eI’ve been thinking about this for awhile now.  For years now, fuzzy pickers and\nlast session have been my go to.  They have served me well.  I can typically\nonly keep so much in my head anyways.  I’m often doing a hub and spoke pattern\nbetween main project, notes, and infra repo, maybe two projects.  Don’t get me\nwrong, I regularly run with a dozen or more sessions running at a time, but\nonly two to three are in my immediate context at any point anyways.\u003c/p\u003e\n\u003ch2 id=\"the-design\"\u003eThe Design \u003ca href=\"#the-design\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eharpoon for tmux\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003epress a hotkey followed by one more keystroke, currently any left hand letter\nSIMPLE, FAST, thats of utmost importance, what I want are sessions that I can\ncan be assigned in order of importance from middle row, top row, bottom row.\u003c/p\u003e\n\u003cp\u003eI added this binding to my tmux config.  Now I can press \u003ccode\u003ec-a a\u003c/code\u003e to go to the\nfirst session, \u003ccode\u003ec-a s\u003c/code\u003e to go to the second session. \u003ccode\u003ec-a\u003c/code\u003e and pause to think\nj/k to navigate, space to pick up a session and move it, x to kill it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebind-key -n c-a popup -E \u003cspan class=\"s1\"\u003e\u0026#39;~/go/bin/tgo\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"enter-the-agents\"\u003eEnter the agents \u003ca href=\"#enter-the-agents\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow with agents doing more and more work, and cooking for longer periods this\nis not cutting it, I’m often swapping through a lot more sessions, I’ve got\nmore projects sitting in more phases between research, implementation, fully\norchestrated agents, and sessions that need their hand held to get things\nright.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eImage of the \u003ccode\u003etgo\u003c/code\u003e tool in action, I’d show you a video, but its not really\nthat interesting, it just flashes up and goes to the next session as fast as\nyou can press the key.\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"made-with-gpt-53-codex-and-gpt-51-codex-mini\"\u003eMade with gpt-5.3-codex and gpt-5.1-codex-mini \u003ca href=\"#made-with-gpt-53-codex-and-gpt-51-codex-mini\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIdk how much it cost, it barely touched my $20/month weekly token allowance.\nI’ve been thinking about it for awhile and decided today was the day to pull\nthe trigger on something and get it started, worst case I throw it away.  It\ntook the agents about 7 minutes to implement a working version with broken ci\nthat it later fixed.\u003c/p\u003e\n\u003cp\u003eI’ve typed far more characters and put more thought into this post than the\ntool itself, that where we are these days I guess.\u003c/p\u003e\n\u003cp\u003eSee the session that made \u003ccode\u003etgo\u003c/code\u003e \u003ca href=\"/ses-3444b09b1ffexter3elfg5qqtg/\" class=\"wikilink\" data-title=\"Ses_3444b09b1ffexter3elfg5qqtg\" data-description=\"** ses***** 3/4/2026, 8:52:32 PM\" data-date=\"2026-03-04\" data-preview=\"** ses***** 3/4/2026, 8:52:32 PM\"\u003eSes_3444b09b1ffexter3elfg5qqtg\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"should-you-use-it\"\u003eShould you use it? \u003ca href=\"#should-you-use-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can its there for anyone to use, go for it, there’s an easy to download\nbinary.\u003c/p\u003e\n\u003cp\u003eIt’s all vibe coded slop that you could probably do a better job doing in a\ncave with scraps anyways.  Take inspiration and make one that works for you.\u003c/p\u003e\n",
      "content_text": "\nI've been thinking about this for awhile now.  For years now, fuzzy pickers and\nlast session have been my go to.  They have served me well.  I can typically\nonly keep so much in my head anyways.  I'm often doing a hub and spoke pattern\nbetween main project, notes, and infra repo, maybe two projects.  Don't get me\nwrong, I regularly run with a dozen or more sessions running at a time, but\nonly two to three are in my immediate context at any point anyways.\n\n## The Design\n_harpoon for tmux_\n\npress a hotkey followed by one more keystroke, currently any left hand letter\nSIMPLE, FAST, thats of utmost importance, what I want are sessions that I can\ncan be assigned in order of importance from middle row, top row, bottom row.\n\nI added this binding to my tmux config.  Now I can press `c-a a` to go to the\nfirst session, `c-a s` to go to the second session. `c-a` and pause to think\nj/k to navigate, space to pick up a session and move it, x to kill it.\n\n``` bash\nbind-key -n c-a popup -E '~/go/bin/tgo'\n```\n\n## Enter the agents\n\nNow with agents doing more and more work, and cooking for longer periods this\nis not cutting it, I'm often swapping through a lot more sessions, I've got\nmore projects sitting in more phases between research, implementation, fully\norchestrated agents, and sessions that need their hand held to get things\nright.\n\n![](https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp)\nImage of the `tgo` tool in action, I'd show you a video, but its not really\nthat interesting, it just flashes up and goes to the next session as fast as\nyou can press the key.\n\n## Made with gpt-5.3-codex and gpt-5.1-codex-mini\n\nIdk how much it cost, it barely touched my $20/month weekly token allowance.\nI've been thinking about it for awhile and decided today was the day to pull\nthe trigger on something and get it started, worst case I throw it away.  It\ntook the agents about 7 minutes to implement a working version with broken ci\nthat it later fixed.\n\nI've typed far more characters and put more thought into this post than the\ntool itself, that where we are these days I guess.\n\nSee the session that made `tgo` \u003ca href=\"/ses-3444b09b1ffexter3elfg5qqtg/\" class=\"wikilink\" data-title=\"Ses_3444b09b1ffexter3elfg5qqtg\" data-description=\"** ses***** 3/4/2026, 8:52:32 PM\" data-date=\"2026-03-04\"\u003eSes_3444b09b1ffexter3elfg5qqtg\u003c/a\u003e\n\n## Should you use it?\n\nYou can its there for anyone to use, go for it, there's an easy to download\nbinary.\n\nIt's all vibe coded slop that you could probably do a better job doing in a\ncave with scraps anyways.  Take inspiration and make one that works for you.\n",
      "summary": "I've been thinking about this for awhile now. For years now, fuzzy pickers and last session have been my go to. They have served me well. I can typically...",
      "date_published": "2026-03-04T20:47:37Z",
      "date_modified": "2026-03-04T20:47:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-30/",
      "url": "https://waylonwalker.com/ping-30/",
      "title": "Is gpt-5.4 slow?",
      "content_html": "\u003cp\u003eWhat you don’t have six agents orchestrating the work of 6 subagents yet.  I\nsaw in a work chat that people were complaining about 5.4 being too slow and\nthey keep going back to opus.  For me its been working great, I have it working\non critical infrastructure work, that I will need to maintain.  I appreciate\nits accuracy and completeness.  And honestly I’m \u003cstrong\u003erarely\u003c/strong\u003e watching agents\nrun.  Its like watching paint dry at this point.  Its interesting to read their\nthinking prompts, but not productive work.  While its running I’m teeing up the\nnet prompt.  Working with another set of agents to write a set of issues for\nthe next epic.  I might be too privileged though.  I own a whole platform and\nhave plenty of autonomy to work on what I see fit for the day.  I don’t have a\nboss breathing down my neck waiting for a single ticket to be complete.  I’m\nworking on 6 projects at a time.  I’m taking walks to avoid becoming a burnt\nout zombie.  I’m definitely not complaining about it kicking out massive\namounts of code too slow though.\u003c/p\u003e\n",
      "content_text": "\nWhat you don't have six agents orchestrating the work of 6 subagents yet.  I\nsaw in a work chat that people were complaining about 5.4 being too slow and\nthey keep going back to opus.  For me its been working great, I have it working\non critical infrastructure work, that I will need to maintain.  I appreciate\nits accuracy and completeness.  And honestly I'm **rarely** watching agents\nrun.  Its like watching paint dry at this point.  Its interesting to read their\nthinking prompts, but not productive work.  While its running I'm teeing up the\nnet prompt.  Working with another set of agents to write a set of issues for\nthe next epic.  I might be too privileged though.  I own a whole platform and\nhave plenty of autonomy to work on what I see fit for the day.  I don't have a\nboss breathing down my neck waiting for a single ticket to be complete.  I'm\nworking on 6 projects at a time.  I'm taking walks to avoid becoming a burnt\nout zombie.  I'm definitely not complaining about it kicking out massive\namounts of code too slow though.\n",
      "summary": "What you don't have six agents orchestrating the work of 6 subagents yet. I saw in a work chat that people were complaining about 5.4 being too slow and they...",
      "date_published": "2026-03-04T20:47:00Z",
      "date_modified": "2026-03-04T20:47:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-26/",
      "url": "https://waylonwalker.com/ping-26/",
      "title": "We are the Grey Beards",
      "content_html": "\u003cp\u003eIn November 2025 everyones beard lost its color, we aged into the next\ngeneration without realizing it.  If you were getting paid to write code at\nthis point in time, you are part of a special point in history where we used to\nwrite code by hand.  There will be systems air gapped systems somewhere devs\nwill continue to do it how we’ve always done it, some day they will peek out of\nthis cave and realize that they are the only ones left, no one else remembers\nwhat its like.  Writing code will quickly become a hobby that people do, in a\nweird niche way.  Not because you want to build something, but like the guy\nwith a mainframe in his garage that likes to watch the lights blink.  Because\nits nostalgic, it’s a very cool skill, its fun and rewarding, but it won’t be\nto get something done.\u003c/p\u003e\n",
      "content_text": "\nIn November 2025 everyones beard lost its color, we aged into the next\ngeneration without realizing it.  If you were getting paid to write code at\nthis point in time, you are part of a special point in history where we used to\nwrite code by hand.  There will be systems air gapped systems somewhere devs\nwill continue to do it how we've always done it, some day they will peek out of\nthis cave and realize that they are the only ones left, no one else remembers\nwhat its like.  Writing code will quickly become a hobby that people do, in a\nweird niche way.  Not because you want to build something, but like the guy\nwith a mainframe in his garage that likes to watch the lights blink.  Because\nits nostalgic, it's a very cool skill, its fun and rewarding, but it won't be\nto get something done.\n\n",
      "summary": "In November 2025 everyones beard lost its color, we aged into the next generation without realizing it. If you were getting paid to write code at this point...",
      "date_published": "2026-03-04T20:44:12Z",
      "date_modified": "2026-03-04T20:44:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-25/",
      "url": "https://waylonwalker.com/ping-25/",
      "title": "Clankers got me tired",
      "content_html": "\u003cp\u003eI spent all day grinding on a 20 minute fix.  I want the agents to do it. They\ncan do it, but they are missing the harnesses they need to replicate my\nworkflows of old.\u003c/p\u003e\n",
      "content_text": "\nI spent all day grinding on a 20 minute fix.  I want the agents to do it. They\ncan do it, but they are missing the harnesses they need to replicate my\nworkflows of old.\n\n\n",
      "summary": "I spent all day grinding on a 20 minute fix. I want the agents to do it. They can do it, but they are missing the harnesses they need to replicate my...",
      "date_published": "2026-03-03T20:42:25Z",
      "date_modified": "2026-03-03T20:42:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "clankers",
        "llm",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/one-shot-markata-searchcraft/",
      "url": "https://waylonwalker.com/shots/one-shot-markata-searchcraft/",
      "title": "One Shot Markata Searchcraft",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/d406663b-a255-4025-b4ee-e40d1e483783.mp4\" class=\"glightbox-link\" aria-label=\"One Shot markata searchcraft\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/d406663b-a255-4025-b4ee-e40d1e483783.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/d406663b-a255-4025-b4ee-e40d1e483783.mp4\" type=\"video/mp4\"\u003eOne Shot markata searchcraft\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThis is the results of a one shot markata-go searchcraft integration\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe prompt was so rambly, I wrote it in about 2 minutes on the way out the door\nto a kids practice.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eI am going to leave for awhile and I want you to prototype a markata-go\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eintegration with searchcraft.  use /home/waylon/git/waylonwalker.com-go as the\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esite to test, stand up a new searchcraft database with podman. use a worktree\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ein ./worktree to write the integration, I want fast semantic search accross all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eof my documents, I want them ingested/upserted/update on build, I want an index\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eper sitename, I might have multiple sites per database, I want you to make a\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/search page to test out what the seasrch looks like.  heavily delegate to\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ni\"\u003e@builder\u003c/span\u003e to research and fully understand https://www.searchcraft.io/ before\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estarting, properly ingest all of the site and make the search page, I don\u0026#39;t\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewant you to stop or ask questions until it works, use \u003cspan class=\"sb\"\u003e`agent-browser`\u003c/span\u003e for\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etesting, use \u003cspan class=\"ni\"\u003e@builder\u003c/span\u003e for all changes writing editing and testing.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n![One Shot markata searchcraft](https://dropper.waylonwalker.com/file/d406663b-a255-4025-b4ee-e40d1e483783.mp4)\nThis is the results of a one shot markata-go searchcraft integration\n\nThe prompt was so rambly, I wrote it in about 2 minutes on the way out the door\nto a kids practice.\n\n``` md\nI am going to leave for awhile and I want you to prototype a markata-go\nintegration with searchcraft.  use /home/waylon/git/waylonwalker.com-go as the\nsite to test, stand up a new searchcraft database with podman. use a worktree\nin ./worktree to write the integration, I want fast semantic search accross all\nof my documents, I want them ingested/upserted/update on build, I want an index\nper sitename, I might have multiple sites per database, I want you to make a\n/search page to test out what the seasrch looks like.  heavily delegate to\n@builder to research and fully understand https://www.searchcraft.io/ before\nstarting, properly ingest all of the site and make the search page, I don't\nwant you to stop or ask questions until it works, use `agent-browser` for\ntesting, use @builder for all changes writing editing and testing.\n```\n",
      "summary": "This is the results of a one shot markata-go searchcraft integration",
      "image": "https://dropper.waylonwalker.com/file/d406663b-a255-4025-b4ee-e40d1e483783.mp4",
      "date_published": "2026-03-02T19:20:17Z",
      "date_modified": "2026-03-02T19:20:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/gh-do-i-have-a-pr/",
      "url": "https://waylonwalker.com/gh-do-i-have-a-pr/",
      "title": "gh do I have a pr",
      "content_html": "\u003cp\u003eIn the age of agents sometimes work gets done on so many different worktrees\nand branches its hard to tell if there is already a PR or any of them or not,\nthe great \u003ccode\u003egh\u003c/code\u003e cli has us covered.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egh pr list --head fix/markata-go-connections-graph\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn the age of agents sometimes work gets done on so many different worktrees\nand branches its hard to tell if there is already a PR or any of them or not,\nthe great `gh` cli has us covered.\n\n``` bash\ngh pr list --head fix/markata-go-connections-graph\n```\n",
      "summary": "In the age of agents sometimes work gets done on so many different worktrees and branches its hard to tell if there is already a PR or any of them or not,...",
      "date_published": "2026-03-02T08:47:44Z",
      "date_modified": "2026-03-02T08:47:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://waylonwalker.com/version-fox-vfox/",
      "url": "https://waylonwalker.com/version-fox-vfox/",
      "title": "⭐ version-fox vfox",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/version-fox\" 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\"\u003eversion-fox’s\u003c/a\u003e project \u003ca href=\"https://github.com/version-fox/vfox\" 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\"\u003evfox\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA cross-platform and extendable version manager with support for Java, Node.js, Golang, Python, Flutter, .NET \u0026amp; more\u003c/p\u003e\n",
      "content_text": "\nI like [version-fox's](https://github.com/version-fox) project [vfox](https://github.com/version-fox/vfox).\n\nA cross-platform and extendable version manager with support for Java, Node.js, Golang, Python, Flutter, .NET \u0026 more\n",
      "summary": "I like version-fox's project vfox.",
      "date_published": "2026-03-02T02:57:32Z",
      "date_modified": "2026-03-02T02:57:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/waiting-for-my-weekly-token-allowance/",
      "url": "https://waylonwalker.com/shots/waiting-for-my-weekly-token-allowance/",
      "title": "Waiting For My Weekly Token Allowance",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/file/818c2d71-521a-4286-a831-cccec1f9b82b.webp\" class=\"glightbox-link\" aria-label=\"Waiting for my weekly token allowance\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.wayl.one/file/818c2d71-521a-4286-a831-cccec1f9b82b.webp\" alt=\"Waiting for my weekly token allowance\"/ data-glightbox=\"description: Waiting for my weekly token allowance\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eOpenai gives me a token allowance for my $20 tier subscription, if I’m careful it lasts a few days of heavy side project work.\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/file/59a85775-c597-42f9-95be-28f250d4e72b.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.wayl.one/file/59a85775-c597-42f9-95be-28f250d4e72b.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eOpencode Zen out of tokens\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/file/35052eef-9b3d-41ab-8d99-ed30f5015442.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.wayl.one/file/35052eef-9b3d-41ab-8d99-ed30f5015442.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eOpenai out of tokens\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n![Waiting for my weekly token allowance](https://dropper.wayl.one/file/818c2d71-521a-4286-a831-cccec1f9b82b.webp)\nOpenai gives me a token allowance for my $20 tier subscription, if I'm careful it lasts a few days of heavy side project work.\n\n![](https://dropper.wayl.one/file/59a85775-c597-42f9-95be-28f250d4e72b.webp)\nOpencode Zen out of tokens\n\n![](https://dropper.wayl.one/file/35052eef-9b3d-41ab-8d99-ed30f5015442.webp)\nOpenai out of tokens\n",
      "summary": "Openai gives me a token allowance for my $20 tier subscription, if I'm careful it lasts a few days of heavy side project work.",
      "image": "https://dropper.wayl.one/file/818c2d71-521a-4286-a831-cccec1f9b82b.webp",
      "date_published": "2026-02-28T11:28:24Z",
      "date_modified": "2026-02-28T11:28:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/kohei-wada-taskdog/",
      "url": "https://waylonwalker.com/kohei-wada-taskdog/",
      "title": "⭐ Kohei-Wada taskdog",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/Kohei-Wada/taskdog\" 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\"\u003etaskdog\u003c/a\u003e by \u003ca href=\"https://github.com/Kohei-Wada\" 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\"\u003eKohei-Wada\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eTerminal task manager with intelligent schedule optimization.Keyboard-only. No dragging, no micromanagement.\u003c/p\u003e\n",
      "content_text": "\nJust starred [taskdog](https://github.com/Kohei-Wada/taskdog) by [Kohei-Wada](https://github.com/Kohei-Wada). It's an exciting project with a lot to offer.\n\nTerminal task manager with intelligent schedule optimization.Keyboard-only. No dragging, no micromanagement.\n",
      "summary": "Just starred taskdog by Kohei-Wada. It's an exciting project with a lot to offer.",
      "date_published": "2026-02-27T21:08:43Z",
      "date_modified": "2026-02-27T21:08:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-941/",
      "url": "https://waylonwalker.com/thought-941/",
      "title": "💭 jack cuts block in half",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/jack/status/2027129697092731343?s=20\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eOne of the well worded shitty messages I’ve seen, good severance, help, timeline to cut off coms.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewe’re not making this decision because we’re in trouble. our business is strong. gross profit continues to grow, we continue to serve more and more customers, and profitability is improving. but something has changed. we’re already seeing that the intelligence tools we’re creating and using, paired with smaller and flatter teams, are enabling a new way of working which fundamentally changes what it means to build and run a company. and that’s accelerating rapidly.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eMuch better than the get rid of people cause AI can do the work.  Honestly I feel this though.  I was just talking with some colleages how do we divvy work in the age of agents without just constantly walking on each other.  If each of us is now an architect who is managing teams of junior agents under us it feels MUCH different than before.\u003c/p\u003e\n\u003cp\u003eI’m far from working in a large software org like this and I’m feeling it.  I only imagine that it gets worse the more people that have to orchestrate around each other.\u003c/p\u003e\n\u003cp\u003eAppreciate the honesty and transparance, but man this sucks for those impacted and the job market right now.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/jack/status/2027129697092731343?s=20\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nOne of the well worded shitty messages I've seen, good severance, help, timeline to cut off coms.\n\n\u003e we're not making this decision because we're in trouble. our business is strong. gross profit continues to grow, we continue to serve more and more customers, and profitability is improving. but something has changed. we're already seeing that the intelligence tools we’re creating and using, paired with smaller and flatter teams, are enabling a new way of working which fundamentally changes what it means to build and run a company. and that's accelerating rapidly.\n\nMuch better than the get rid of people cause AI can do the work.  Honestly I feel this though.  I was just talking with some colleages how do we divvy work in the age of agents without just constantly walking on each other.  If each of us is now an architect who is managing teams of junior agents under us it feels MUCH different than before.\n\nI'm far from working in a large software org like this and I'm feeling it.  I only imagine that it gets worse the more people that have to orchestrate around each other.\n\nAppreciate the honesty and transparance, but man this sucks for those impacted and the job market right now.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/jack/status/2027129697092731343?s=20",
      "date_published": "2026-02-27T11:29:10Z",
      "date_modified": "2026-02-27T11:29:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-24/",
      "url": "https://waylonwalker.com/ping-24/",
      "title": "The Ghostty Guy",
      "content_html": "\u003cp\u003eI was today years old when I realized that the ghostty guy is the Hashicorp guy.\u003c/p\u003e\n",
      "content_text": "\nI was today years old when I realized that the ghostty guy is the Hashicorp guy.\n",
      "summary": "I was today years old when I realized that the ghostty guy is the Hashicorp guy.",
      "date_published": "2026-02-26T18:49:39Z",
      "date_modified": "2026-02-26T18:49:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/torvalds-linux/",
      "url": "https://waylonwalker.com/torvalds-linux/",
      "title": "⭐ torvalds linux",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/torvalds/linux\" 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\"\u003elinux\u003c/a\u003e by \u003ca href=\"https://github.com/torvalds\" 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\"\u003etorvalds\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eLinux kernel source tree\u003c/p\u003e\n",
      "content_text": "\nJust starred [linux](https://github.com/torvalds/linux) by [torvalds](https://github.com/torvalds). It's an exciting project with a lot to offer.\n\nLinux kernel source tree\n",
      "summary": "Just starred linux by torvalds. It's an exciting project with a lot to offer.",
      "date_published": "2026-02-25T16:09:09Z",
      "date_modified": "2026-02-25T16:09:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-940/",
      "url": "https://waylonwalker.com/thought-940/",
      "title": "💭 FFmpeg video crop",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tools.simonwillison.net/ffmpeg-crop\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/tools.simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/tools.simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFFmpeg video crop\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etools.simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis was the inspiration for the next update in dropper that became a full clip editor.  The one that I’ve long wanted, but forgotten about.  It’s going to include this cropper, resize, image extractor, and trimmer.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tools.simonwillison.net/ffmpeg-crop\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFFmpeg video crop\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etools.simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis was the inspiration for the next update in dropper that became a full clip editor.  The one that I've long wanted, but forgotten about.  It's going to include this cropper, resize, image extractor, and trimmer.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://tools.simonwillison.net/ffmpeg-crop",
      "date_published": "2026-02-25T08:29:59Z",
      "date_modified": "2026-02-25T08:29:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-939/",
      "url": "https://waylonwalker.com/thought-939/",
      "title": "💭 Tiny Tool Town 🏘️",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.tinytooltown.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.tinytooltown.com/og-image.png\" alt=\"Tiny Tool Town 🏘️ — A delightful showcase for free, fun \u0026amp; open source tiny tools. Stupid-delightful software made with love.\" loading=\"lazy\"/ data-glightbox=\"description: Tiny Tool Town 🏘️ — A delightful showcase for free, fun \u0026amp; open source tiny tools. Stupid-delightful software made with love.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTiny Tool Town 🏘️\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA delightful showcase for free, fun \u0026amp; open source tiny tools. Stupid-delightful software made with love.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTiny Tool Town · tinytooltown.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eLearned about this one from the @stipete \u003ca href=\"https://youtu.be/Wm7tsiJ1nIo?si=_qvZaR5SPWozBjrY\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003einterview\u003c/a\u003e @scotthanselman did on YouTube.  This is proof that the internet is alive.  It’s such web 1.0 nostalgia to see that people can just build things!  Did you know that you can literally just build things and make them exist?  You don’t need users, You don’t need a big platform, you can just make something into existance.  It seems like something we have forgotten through web 2.0 where everything as become 4 major apps all linking to each other and trying to hoard all of the attention. Scroll through tehre are some really cool apps, probably nothing that has the polish you want, or is going to change your world.  What these apps have more than anything you’ve probably used in the recent years, is inspiration.  Its xyz, but the way I wanted, or with my little twist.  And no one else has to like it but me because I’m the user.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.tinytooltown.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.tinytooltown.com/og-image.png\" alt=\"Tiny Tool Town 🏘️ — A delightful showcase for free, fun \u0026amp; open source tiny tools. Stupid-delightful software made with love.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTiny Tool Town 🏘️\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA delightful showcase for free, fun \u0026amp; open source tiny tools. Stupid-delightful software made with love.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTiny Tool Town \u0026middot; tinytooltown.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nLearned about this one from the @stipete [interview](https://youtu.be/Wm7tsiJ1nIo?si=_qvZaR5SPWozBjrY) @scotthanselman did on YouTube.  This is proof that the internet is alive.  It's such web 1.0 nostalgia to see that people can just build things!  Did you know that you can literally just build things and make them exist?  You don't need users, You don't need a big platform, you can just make something into existance.  It seems like something we have forgotten through web 2.0 where everything as become 4 major apps all linking to each other and trying to hoard all of the attention. Scroll through tehre are some really cool apps, probably nothing that has the polish you want, or is going to change your world.  What these apps have more than anything you've probably used in the recent years, is inspiration.  Its xyz, but the way I wanted, or with my little twist.  And no one else has to like it but me because I'm the user.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.tinytooltown.com/",
      "date_published": "2026-02-25T08:27:11Z",
      "date_modified": "2026-02-25T08:27:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-938/",
      "url": "https://waylonwalker.com/thought-938/",
      "title": "💭 FancyGist",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://fancygist.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"/og.png\" alt=\"FancyGist\" loading=\"lazy\"/ data-glightbox=\"description: FancyGist\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFancyGist\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003efancygist.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI saw this in @cassido’s newsletter this week and had to give it a run.  I despise that there is no dark mode and it insists on burning my retinas 😤.  But really this is an absolute beate of a web based markdown editor, I love the command mode to press slash and it just pops out in this whimsical animation ready for me to pick what I want.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/74f0ac1e-ac50-4939-8bba-4698a8043b25.mp4\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/74f0ac1e-ac50-4939-8bba-4698a8043b25.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/74f0ac1e-ac50-4939-8bba-4698a8043b25.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://fancygist.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"/og.png\" alt=\"FancyGist\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFancyGist\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003efancygist.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI saw this in @cassido's newsletter this week and had to give it a run.  I despise that there is no dark mode and it insists on burning my retinas 😤.  But really this is an absolute beate of a web based markdown editor, I love the command mode to press slash and it just pops out in this whimsical animation ready for me to pick what I want.\n\n![](https://dropper.waylonwalker.com/file/74f0ac1e-ac50-4939-8bba-4698a8043b25.mp4)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://fancygist.com/",
      "date_published": "2026-02-25T08:07:40Z",
      "date_modified": "2026-02-25T08:07:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dropper-just-got-the-clip-editor-i've-dreamed-of/",
      "url": "https://waylonwalker.com/shots/dropper-just-got-the-clip-editor-i've-dreamed-of/",
      "title": "Dropper Just Got The Clip Editor I've Dreamed Of",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/file/63be6ed0-3265-4d6a-b5c7-7aa61838b3ba.mp4\" class=\"glightbox-link\" aria-label=\"dropper just got the clip editor I’ve dreamed of\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.wayl.one/file/63be6ed0-3265-4d6a-b5c7-7aa61838b3ba.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.wayl.one/file/63be6ed0-3265-4d6a-b5c7-7aa61838b3ba.mp4\" type=\"video/mp4\"\u003edropper just got the clip editor I’ve dreamed of\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eEditing a Session Skate Sim clip inside of dropper with trim, scrub, and crop.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![dropper just got the clip editor I've dreamed of](https://dropper.wayl.one/file/63be6ed0-3265-4d6a-b5c7-7aa61838b3ba.mp4)\n\n\u003e Editing a Session Skate Sim clip inside of dropper with trim, scrub, and crop.\n\n",
      "summary": "Editing a Session Skate Sim clip inside of dropper with trim, scrub, and crop.",
      "image": "https://dropper.wayl.one/file/63be6ed0-3265-4d6a-b5c7-7aa61838b3ba.mp4",
      "date_published": "2026-02-24T21:33:37Z",
      "date_modified": "2026-02-24T21:33:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dropper-gets-video-thumbnail-upgrade/",
      "url": "https://waylonwalker.com/shots/dropper-gets-video-thumbnail-upgrade/",
      "title": "Dropper Gets Video Thumbnail Upgrade",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/file/3c8ef069-be64-4e80-b386-c9463830a0d6.mp4\" class=\"glightbox-link\" aria-label=\"Dropper gets video thumbnail upgrade\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.wayl.one/file/3c8ef069-be64-4e80-b386-c9463830a0d6.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.wayl.one/file/3c8ef069-be64-4e80-b386-c9463830a0d6.mp4\" type=\"video/mp4\"\u003eDropper gets video thumbnail upgrade\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eIn the video clip you can see me reload into the latest version of dropper that supports video thumbnails, turning those unknown clips into a collection I can recognize.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dropper gets video thumbnail upgrade](https://dropper.wayl.one/file/3c8ef069-be64-4e80-b386-c9463830a0d6.mp4)\n\n\u003e In the video clip you can see me reload into the latest version of dropper that supports video thumbnails, turning those unknown clips into a collection I can recognize.\n\n",
      "summary": "In the video clip you can see me reload into the latest version of dropper that supports video thumbnails, turning those unknown clips into a collection I can recognize.",
      "image": "https://dropper.wayl.one/file/3c8ef069-be64-4e80-b386-c9463830a0d6.mp4",
      "date_published": "2026-02-24T21:16:54Z",
      "date_modified": "2026-02-24T21:16:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "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/shots/gma-silk-fail1/",
      "url": "https://waylonwalker.com/shots/gma-silk-fail1/",
      "title": "Gma Silk Fail1",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/21e82f95-c53b-449b-858d-c66c375b38e8.mp4\" class=\"glightbox-link\" aria-label=\"Gma Silk Fail1\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/21e82f95-c53b-449b-858d-c66c375b38e8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/21e82f95-c53b-449b-858d-c66c375b38e8.mp4\" type=\"video/mp4\"\u003eGma Silk Fail1\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eGma Silk Fail1\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Gma Silk Fail1](https://dropper.waylonwalker.com/file/21e82f95-c53b-449b-858d-c66c375b38e8.mp4)\n\n\u003e Gma Silk Fail1\n",
      "summary": "Gma Silk Fail1",
      "image": "https://dropper.waylonwalker.com/file/21e82f95-c53b-449b-858d-c66c375b38e8.mp4",
      "date_published": "2026-02-23T17:52:50Z",
      "date_modified": "2026-02-23T17:52:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/post-lace2-dream/",
      "url": "https://waylonwalker.com/shots/post-lace2-dream/",
      "title": "Post Lace2 Dream",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/03cd8071-33ee-4280-a4e4-4a5df382d627.mp4\" class=\"glightbox-link\" aria-label=\"Post Lace2 Dream\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/03cd8071-33ee-4280-a4e4-4a5df382d627.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/03cd8071-33ee-4280-a4e4-4a5df382d627.mp4\" type=\"video/mp4\"\u003ePost Lace2 Dream\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePost Lace2 Dream\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Post Lace2 Dream](https://dropper.waylonwalker.com/file/03cd8071-33ee-4280-a4e4-4a5df382d627.mp4)\n\n\u003e Post Lace2 Dream\n",
      "summary": "Post Lace2 Dream",
      "image": "https://dropper.waylonwalker.com/file/03cd8071-33ee-4280-a4e4-4a5df382d627.mp4",
      "date_published": "2026-02-23T17:51:06Z",
      "date_modified": "2026-02-23T17:51:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/lace2/",
      "url": "https://waylonwalker.com/shots/lace2/",
      "title": "Lace2",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e325282a-d50a-4f85-9e08-634bc0faca74.mp4\" class=\"glightbox-link\" aria-label=\"Lace2\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/e325282a-d50a-4f85-9e08-634bc0faca74.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/e325282a-d50a-4f85-9e08-634bc0faca74.mp4\" type=\"video/mp4\"\u003eLace2\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eLace2\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Lace2](https://dropper.waylonwalker.com/file/e325282a-d50a-4f85-9e08-634bc0faca74.mp4)\n\n\u003e Lace2\n",
      "summary": "Lace2",
      "image": "https://dropper.waylonwalker.com/file/e325282a-d50a-4f85-9e08-634bc0faca74.mp4",
      "date_published": "2026-02-23T17:48:56Z",
      "date_modified": "2026-02-23T17:48:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-937/",
      "url": "https://waylonwalker.com/thought-937/",
      "title": "💭 Reply guy",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Feb/23/reply-guy/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReply guy\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe latest scourge of Twitter is AI bots that reply to your tweets with generic, banal commentary slop, often accompanied by a question to \u0026#34;drive engagement\u0026#34; and waste as much …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI had no idea there were such things as “reply guy” as a service.  I can see this as a really genuine thing where brands want to genuinely engage with their communities, quickly being taken over by slop bros to ruin everything.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Feb/23/reply-guy/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReply guy\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe latest scourge of Twitter is AI bots that reply to your tweets with generic, banal commentary slop, often accompanied by a question to \u0026#34;drive engagement\u0026#34; and waste as much …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI had no idea there were such things as \"reply guy\" as a service.  I can see this as a really genuine thing where brands want to genuinely engage with their communities, quickly being taken over by slop bros to ruin everything.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2026/Feb/23/reply-guy/#atom-everything",
      "date_published": "2026-02-23T08:39:41Z",
      "date_modified": "2026-02-23T08:39:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "sass",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-936/",
      "url": "https://waylonwalker.com/thought-936/",
      "title": "💭 Smaller and dumber - daverupert.com",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daverupert.com/2026/02/smaller-and-dumber/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/daverupert.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/daverupert.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSmaller and dumber\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf I can make it smaller, I should.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edaverupert.com · daverupert.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eImportant things to remember in the age of cheap code.  More code, not always more better.  More code mean, more risk, more maintenance, harder to change.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daverupert.com/2026/02/smaller-and-dumber/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSmaller and dumber\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf I can make it smaller, I should.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edaverupert.com \u0026middot; daverupert.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nImportant things to remember in the age of cheap code.  More code, not always more better.  More code mean, more risk, more maintenance, harder to change.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://daverupert.com/2026/02/smaller-and-dumber/",
      "date_published": "2026-02-23T08:36:05Z",
      "date_modified": "2026-02-23T08:36:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-935/",
      "url": "https://waylonwalker.com/thought-935/",
      "title": "💭 An attempt at a balanced perspective on AI - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"FC7YGG0FzZ0\" title=\"An attempt at a balanced perspective on AI\" playlabel=\"Play: An attempt at a balanced perspective on AI\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eTHIS, THIS is how most people are feeling about AI right now.  Theres lots of “oh ai bad”, “but ai help”, “but ai company sleezy”.  Cassidy did a fantastic job summarizing how most of us are feeling.  Ending with well at the end of the day, I can’t do anything about the bad, the best thing I can do is learn how to embrace the good cause it aint going away any time soon.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"FC7YGG0FzZ0\" title=\"An attempt at a balanced perspective on AI\" playlabel=\"Play: An attempt at a balanced perspective on AI\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nTHIS, THIS is how most people are feeling about AI right now.  Theres lots of \"oh ai bad\", \"but ai help\", \"but ai company sleezy\".  Cassidy did a fantastic job summarizing how most of us are feeling.  Ending with well at the end of the day, I can't do anything about the bad, the best thing I can do is learn how to embrace the good cause it aint going away any time soon.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=FC7YGG0FzZ0",
      "date_published": "2026-02-22T21:09:05Z",
      "date_modified": "2026-02-22T21:09:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/thoughts-cluster-looks-like-a-flower/",
      "url": "https://waylonwalker.com/shots/thoughts-cluster-looks-like-a-flower/",
      "title": "Thoughts Cluster Looks Like A Flower",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5e7ccf2b-bf88-4e1e-ae39-e4a9fc718083.webp\" class=\"glightbox-link\" aria-label=\"Thoughts cluster looks like a flower\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/5e7ccf2b-bf88-4e1e-ae39-e4a9fc718083.webp\" alt=\"Thoughts cluster looks like a flower\"/ data-glightbox=\"description: Thoughts cluster looks like a flower\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMy thoughts connections made an interesting flower layout.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Thoughts cluster looks like a flower](https://dropper.waylonwalker.com/file/5e7ccf2b-bf88-4e1e-ae39-e4a9fc718083.webp)\n\n\u003e My thoughts connections made an interesting flower layout.\n\n",
      "summary": "My thoughts connections made an interesting flower layout.",
      "image": "https://dropper.waylonwalker.com/file/5e7ccf2b-bf88-4e1e-ae39-e4a9fc718083.webp",
      "date_published": "2026-02-21T15:49:25Z",
      "date_modified": "2026-02-21T15:49:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-934/",
      "url": "https://waylonwalker.com/thought-934/",
      "title": "💭 Post by @castpixel.bsky.social — Bluesky",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/castpixel.bsky.social/post/3mf52azn5oc2h\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:oybl65tqxhrz2kudyddnfsll/bafkreieol42oec5cxatj3xxpkekepoyhjcxkkwcom4tzyfuiu3vk7gj7ia\" alt=\"castpixel  ⚧️⚢ (@castpixel.bsky.social) — I made a tool that turns PCB designs into 3D-printable molds. you sandwich copper tape between the parts, sand the ridges, and you have a real working PCB. no etching, no chemicals. I am losing my mind\n\u0026lt;p\u0026gt;castpixel.itch.io/pcb-forge\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: castpixel  ⚧️⚢ (@castpixel.bsky.social) — I made a tool that turns PCB designs into 3D-printable molds. you sandwich copper tape between the parts, sand the ridges, and you have a real working PCB. no etching, no chemicals. I am losing my mind\n\u0026lt;p\u0026gt;castpixel.itch.io/pcb-forge\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003ecastpixel  ⚧️⚢ (@castpixel.bsky.social)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eI made a tool that turns PCB designs into 3D-printable molds. you sandwich copper tape between the parts, sand the ridges, and you have a real working PCB. no etching, no chemicals. I am losing my …\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a wild way to build prototype pcb’s, so cool and creative.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/castpixel.bsky.social/post/3mf52azn5oc2h\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:oybl65tqxhrz2kudyddnfsll/bafkreieol42oec5cxatj3xxpkekepoyhjcxkkwcom4tzyfuiu3vk7gj7ia\" alt=\"castpixel  ⚧️⚢ (@castpixel.bsky.social) — I made a tool that turns PCB designs into 3D-printable molds. you sandwich copper tape between the parts, sand the ridges, and you have a real working PCB. no etching, no chemicals. I am losing my mind\n\ncastpixel.itch.io/pcb-forge\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecastpixel  ⚧️⚢ (@castpixel.bsky.social)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI made a tool that turns PCB designs into 3D-printable molds. you sandwich copper tape between the parts, sand the ridges, and you have a real working PCB. no etching, no chemicals. I am losing my ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a wild way to build prototype pcb's, so cool and creative.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/castpixel.bsky.social/post/3mf52azn5oc2h",
      "date_published": "2026-02-19T17:11:42Z",
      "date_modified": "2026-02-19T17:11:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "pcb",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-933/",
      "url": "https://waylonwalker.com/thought-933/",
      "title": "💭 Session: Skate Sim on X: \"Our long-awaited Skate Core Update i...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/SessionGame/status/2024469214396838140\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eHad 10 minutes to play with the new session updates this afternoon and it feels so much smoother.  I can definitely feel it even as a casual user.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/SessionGame/status/2024469214396838140\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nHad 10 minutes to play with the new session updates this afternoon and it feels so much smoother.  I can definitely feel it even as a casual user.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/SessionGame/status/2024469214396838140",
      "date_published": "2026-02-19T17:10:18Z",
      "date_modified": "2026-02-19T17:10:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "session-skate-sim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-932/",
      "url": "https://waylonwalker.com/thought-932/",
      "title": "💭 trash on X: \"loving the state of development right now https:/...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/trashh_dev/status/2024476878015468027\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThere are so many config files right now, glad to see some standards coming in around Agents.md, but so much is still specialized to a whole host of tools that have not been standardized on yet.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/trashh_dev/status/2024476878015468027\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThere are so many config files right now, glad to see some standards coming in around Agents.md, but so much is still specialized to a whole host of tools that have not been standardized on yet.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/trashh_dev/status/2024476878015468027",
      "date_published": "2026-02-19T17:07:34Z",
      "date_modified": "2026-02-19T17:07:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-931/",
      "url": "https://waylonwalker.com/thought-931/",
      "title": "💭 Silksong Demastered",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://nekodot.itch.io/silksong-nes\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://img.itch.zone/aW1nLzI1NTY5MDUxLnBuZw==/original/4hxpLH.png\" alt=\"Silksong: Demastered by Nekodot — Hollow Knight: Silksong in the classic NES-style!\" loading=\"lazy\"/ data-glightbox=\"description: Silksong: Demastered by Nekodot — Hollow Knight: Silksong in the classic NES-style!\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSilksong: Demastered by Nekodot\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHollow Knight: Silksong in the classic NES-style!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eitch.io · nekodot.itch.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is an abolute banger of a game on itch.  It nails the nes aesthetic while keeping true to the modern silksong movements.  You can play through the first boss Moss Mother, and where you start the first ascend into Bone Bottom.  I was in shock when I discovered the little climb effect hornet does when you just cant quite make a jump, the hold jump for height is on point.  Her downstrike with the hunters crest is perfect.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://nekodot.itch.io/silksong-nes\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://img.itch.zone/aW1nLzI1NTY5MDUxLnBuZw==/original/4hxpLH.png\" alt=\"Silksong: Demastered by Nekodot — Hollow Knight: Silksong in the classic NES-style!\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSilksong: Demastered by Nekodot\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHollow Knight: Silksong in the classic NES-style!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eitch.io \u0026middot; nekodot.itch.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is an abolute banger of a game on itch.  It nails the nes aesthetic while keeping true to the modern silksong movements.  You can play through the first boss Moss Mother, and where you start the first ascend into Bone Bottom.  I was in shock when I discovered the little climb effect hornet does when you just cant quite make a jump, the hold jump for height is on point.  Her downstrike with the hunters crest is perfect.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://nekodot.itch.io/silksong-nes",
      "date_published": "2026-02-17T18:20:18Z",
      "date_modified": "2026-02-17T18:20:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-930/",
      "url": "https://waylonwalker.com/thought-930/",
      "title": "💭 Blueskii on X: \"this underground creator named \"sN0UK\" made Qu...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/LayoutPerson/status/2023551519375900957\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWyatt would absolutely love this banger of a level.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://x.com/i/status/2023551519375900957\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://x.com/i/status/2023551519375900957\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/LayoutPerson/status/2023551519375900957\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWyatt would absolutely love this banger of a level.\n\n![](https://x.com/i/status/2023551519375900957)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/LayoutPerson/status/2023551519375900957",
      "date_published": "2026-02-17T08:02:51Z",
      "date_modified": "2026-02-17T08:02:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-929/",
      "url": "https://waylonwalker.com/thought-929/",
      "title": "💭 Home / X",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/2023710298201350606/photo/1\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eTo the untrained eye this passes as any normal gui editor.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/86d45a22-9ed4-4f14-8070-5f0cadee9bad.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/86d45a22-9ed4-4f14-8070-5f0cadee9bad.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/2023710298201350606/photo/1\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nTo the untrained eye this passes as any normal gui editor.\n\n![](https://dropper.waylonwalker.com/file/86d45a22-9ed4-4f14-8070-5f0cadee9bad.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/dhh/status/2023710298201350606/photo/1",
      "date_published": "2026-02-17T07:58:16Z",
      "date_modified": "2026-02-17T07:58:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "terminal",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-928/",
      "url": "https://waylonwalker.com/thought-928/",
      "title": "💭 uvx.sh | Astral",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://uvx.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003euvx.sh | Astral\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInstall Python tools with a single command. Powered by uv.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003euvx.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eastral silently dropped a clever uvx.sh to help builders reach a wider audience, no longer does a user need to have python installed prior to installing a python cli. It does have a hard requirement on having curl or wget available.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://uvx.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003euvx.sh | Astral\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInstall Python tools with a single command. Powered by uv.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003euvx.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nastral silently dropped a clever uvx.sh to help builders reach a wider audience, no longer does a user need to have python installed prior to installing a python cli. It does have a hard requirement on having curl or wget available.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://uvx.sh/",
      "date_published": "2026-02-16T14:21:29Z",
      "date_modified": "2026-02-16T14:21:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought",
        "uv"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-927/",
      "url": "https://waylonwalker.com/thought-927/",
      "title": "💭 POV: You install Clawdbot on VPS - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bof8TkZkr1I\" title=\"POV: You install Clawdbot on VPS\" playlabel=\"Play: POV: You install Clawdbot on VPS\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eUse a linux vps, It’s easy, just follow these simple instructions.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bof8TkZkr1I\" title=\"POV: You install Clawdbot on VPS\" playlabel=\"Play: POV: You install Clawdbot on VPS\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nUse a linux vps, It's easy, just follow these simple instructions.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/bof8TkZkr1I",
      "date_published": "2026-02-16T10:22:40Z",
      "date_modified": "2026-02-16T10:22:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "linux",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-926/",
      "url": "https://waylonwalker.com/thought-926/",
      "title": "💭 POV: Your AI Models change faster than JS Frameworks - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"vGKC9LpGnOQ\" title=\"POV: Your AI Models change faster than JS Frameworks\" playlabel=\"Play: POV: Your AI Models change faster than JS Frameworks\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWe are living through the js framework wars for agents and llms now.  We will look back on this with clarity, and wonder why we wasted time with things like graphql, and why we couldn’t see the real winners from the start.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"vGKC9LpGnOQ\" title=\"POV: Your AI Models change faster than JS Frameworks\" playlabel=\"Play: POV: Your AI Models change faster than JS Frameworks\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWe are living through the js framework wars for agents and llms now.  We will look back on this with clarity, and wonder why we wasted time with things like graphql, and why we couldn't see the real winners from the start.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/vGKC9LpGnOQ",
      "date_published": "2026-02-16T10:21:52Z",
      "date_modified": "2026-02-16T10:21:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-925/",
      "url": "https://waylonwalker.com/thought-925/",
      "title": "💭 OpenClaw: The Viral AI Agent that Broke the Internet - Peter S...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"YFjfBk8HI5o\" title=\"OpenClaw: The Viral AI Agent that Broke the Internet - Peter Steinberger | Lex Fridman Podcast #491\" playlabel=\"Play: OpenClaw: The Viral AI Agent that Broke the Internet - Peter Steinberger | Lex Fridman Podcast #491\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eSuch a good interview @lexfridman is such a talented interview.  It’s so cool to see the other side of this.  For weeks we’ve heard about the story of the name change, we’ve seen everyone shitting on the security model, buying up all the mac minis in existance, fear mongering not to install this thing.  @steipete.me has such a cool story from the beginning talking about making this thing fun and exciting.  Giving it a personality that is not “You are absolutely right”.  The story of changing the name twice, and getting pwnd on every step the first time and nailing it the second time is incredible.  Dude is having fun trying to make the thing he wants in the world exist.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"YFjfBk8HI5o\" title=\"OpenClaw: The Viral AI Agent that Broke the Internet - Peter Steinberger | Lex Fridman Podcast #491\" playlabel=\"Play: OpenClaw: The Viral AI Agent that Broke the Internet - Peter Steinberger | Lex Fridman Podcast #491\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nSuch a good interview @lexfridman is such a talented interview.  It's so cool to see the other side of this.  For weeks we've heard about the story of the name change, we've seen everyone shitting on the security model, buying up all the mac minis in existance, fear mongering not to install this thing.  @steipete.me has such a cool story from the beginning talking about making this thing fun and exciting.  Giving it a personality that is not \"You are absolutely right\".  The story of changing the name twice, and getting pwnd on every step the first time and nailing it the second time is incredible.  Dude is having fun trying to make the thing he wants in the world exist.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=YFjfBk8HI5o",
      "date_published": "2026-02-16T10:19:08Z",
      "date_modified": "2026-02-16T10:19:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/happy-valentines-breakfast-2026/",
      "url": "https://waylonwalker.com/shots/happy-valentines-breakfast-2026/",
      "title": "Happy Valentines Breakfast 2026",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/48c9dfa2-326c-42eb-ae17-78887fa0146c.webp\" class=\"glightbox-link\" aria-label=\"Happy Valentines Breakfast 2026\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/48c9dfa2-326c-42eb-ae17-78887fa0146c.webp\" alt=\"Happy Valentines Breakfast 2026\"/ data-glightbox=\"description: Happy Valentines Breakfast 2026\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA one eye’d pirate (egg in toast) in the shape of a heart for Ayla.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f0233aa3-175c-45e0-8e96-c2628ab55f1a.webp\" class=\"glightbox-link\" aria-label=\"Prepped bread for the heart shaped one eye’d pirate\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f0233aa3-175c-45e0-8e96-c2628ab55f1a.webp\" alt=\"Prepped bread for the heart shaped one eye’d pirate\"/ data-glightbox=\"description: Prepped bread for the heart shaped one eye’d pirate\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eAyla helped with the ideation and the Prep work.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Happy Valentines Breakfast 2026](https://dropper.waylonwalker.com/file/48c9dfa2-326c-42eb-ae17-78887fa0146c.webp)\n\n\u003e A one eye'd pirate (egg in toast) in the shape of a heart for Ayla.\n\n![Prepped bread for the heart shaped one eye'd pirate](https://dropper.waylonwalker.com/file/f0233aa3-175c-45e0-8e96-c2628ab55f1a.webp)\n\n\u003e Ayla helped with the ideation and the Prep work.\n",
      "summary": "A one eye'd pirate (egg in toast) in the shape of a heart for Ayla.",
      "image": "https://dropper.waylonwalker.com/file/48c9dfa2-326c-42eb-ae17-78887fa0146c.webp",
      "date_published": "2026-02-14T19:26:30Z",
      "date_modified": "2026-02-14T19:26:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/new-fast-mode-in-markata-go-is-fun/",
      "url": "https://waylonwalker.com/shots/new-fast-mode-in-markata-go-is-fun/",
      "title": "New Fast Mode In Markata-Go Is Fun",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/6676ab86-02a2-4596-8ce9-9af34a98eda3.mp4\" class=\"glightbox-link\" aria-label=\"New fast mode in markata-go is fun\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/6676ab86-02a2-4596-8ce9-9af34a98eda3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/6676ab86-02a2-4596-8ce9-9af34a98eda3.mp4\" type=\"video/mp4\"\u003eNew fast mode in markata-go is fun\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSwapping themes with the theme picker cli and watching the output change within about 1-2s live reloaded in the browser.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![New fast mode in markata-go is fun](https://dropper.waylonwalker.com/file/6676ab86-02a2-4596-8ce9-9af34a98eda3.mp4)\n\n\u003e Swapping themes with the theme picker cli and watching the output change within about 1-2s live reloaded in the browser.\n\n",
      "summary": "Swapping themes with the theme picker cli and watching the output change within about 1-2s live reloaded in the browser.",
      "image": "https://dropper.waylonwalker.com/file/6676ab86-02a2-4596-8ce9-9af34a98eda3.mp4",
      "date_published": "2026-02-14T19:25:04Z",
      "date_modified": "2026-02-14T19:25:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/double-gutter/",
      "url": "https://waylonwalker.com/double-gutter/",
      "title": "double gutter",
      "content_html": "\u003cp\u003eI keep forgetting about the double gutter problem with nested containers.  When\nyou put padding on a parent and the child also has padding, you get twice the\nspacing you wanted.\u003c/p\u003e\n\u003ch2 id=\"the-problem\"\u003eThe Problem \u003ca href=\"#the-problem\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003econtainer\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"k\"\u003epadding\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"kt\"\u003erem\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003echild\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"k\"\u003epadding\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e2\u003c/span\u003e\u003cspan class=\"kt\"\u003erem\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow your content is 4rem from the edge.  Not what I meant at all.\u003c/p\u003e\n\u003ch2 id=\"the-fix\"\u003eThe Fix \u003ca href=\"#the-fix\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eEither remove padding from the parent or use \u003ccode\u003ebox-sizing: border-box\u003c/code\u003e and plan\nfor it.  I usually just drop the parent padding when I realize what I have done.\u003c/p\u003e\n",
      "content_text": "\nI keep forgetting about the double gutter problem with nested containers.  When\nyou put padding on a parent and the child also has padding, you get twice the\nspacing you wanted.\n\n## The Problem\n\n```css\n.container {\n  padding: 2rem;\n}\n\n.child {\n  padding: 2rem;\n}\n```\n\nNow your content is 4rem from the edge.  Not what I meant at all.\n\n## The Fix\n\nEither remove padding from the parent or use `box-sizing: border-box` and plan\nfor it.  I usually just drop the parent padding when I realize what I have done.",
      "summary": "I keep forgetting about the double gutter problem with nested containers. When you put padding on a parent and the child also has padding, you get twice the...",
      "date_published": "2026-02-14T09:12:42Z",
      "date_modified": "2026-02-14T09:12:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-924/",
      "url": "https://waylonwalker.com/thought-924/",
      "title": "💭 Naya Connect | Hackaday",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hackaday.com/tag/naya-connect/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://s0.wp.com/_si/?t=eyJpbWciOiJodHRwczpcL1wvaGFja2FkYXkuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wN1wvaGFja2FkYXktbG9nby13aXRoLXRleHQtb3BlbmdyYXBoLWRlZmF1bHQtaW1hZ2UuanBnIiwidHh0IjoiSGFja2FkYXkiLCJ0ZW1wbGF0ZSI6ImhpZ2h3YXkiLCJmb250IjoiIiwiYmxvZ19pZCI6MTU2NjcwMTc3fQ.kVPxWrsIQyGdD1cPoxYvzP1mD56qtpkNpW1nAFiZiIgMQ\" alt=\"Naya Connect – Hackaday\" loading=\"lazy\"/ data-glightbox=\"description: Naya Connect – Hackaday\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNaya Connect – Hackaday\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eHackaday · hackaday.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThe idea of adjustable key caps to mutate your board into something that really fits you, how you type, how your fingers move, is an absolute banger.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hackaday.com/tag/naya-connect/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://s0.wp.com/_si/?t=eyJpbWciOiJodHRwczpcL1wvaGFja2FkYXkuY29tXC93cC1jb250ZW50XC91cGxvYWRzXC8yMDIwXC8wN1wvaGFja2FkYXktbG9nby13aXRoLXRleHQtb3BlbmdyYXBoLWRlZmF1bHQtaW1hZ2UuanBnIiwidHh0IjoiSGFja2FkYXkiLCJ0ZW1wbGF0ZSI6ImhpZ2h3YXkiLCJmb250IjoiIiwiYmxvZ19pZCI6MTU2NjcwMTc3fQ.kVPxWrsIQyGdD1cPoxYvzP1mD56qtpkNpW1nAFiZiIgMQ\" alt=\"Naya Connect – Hackaday\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNaya Connect – Hackaday\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eHackaday \u0026middot; hackaday.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe idea of adjustable key caps to mutate your board into something that really fits you, how you type, how your fingers move, is an absolute banger.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hackaday.com/tag/naya-connect/",
      "date_published": "2026-02-12T21:39:21Z",
      "date_modified": "2026-02-12T21:39:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/first-w-in-brotato/",
      "url": "https://waylonwalker.com/first-w-in-brotato/",
      "title": "First W In Brotato",
      "content_html": "\u003cp\u003eAfter having brotato and doing a few runs every once in a while I \u003cstrong\u003efinally\u003c/strong\u003e\nbeat the most basic balanced run in the game!  Wyatt wanted to play tonight and\nits such an easy game to jump in do a few runs and move on without getting\noverly invested.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/07c87b1d-60a0-4527-a045-d4203ca929db.webp\" class=\"glightbox-link\" aria-label=\"I almost died\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/07c87b1d-60a0-4527-a045-d4203ca929db.webp\" alt=\"I almost died\"/ data-glightbox=\"description: I almost died\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWatching back I cannot believe how lucky I got, barely scraping by with 1hp at this point\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ethe last 80s of the game\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/9b108e98-1f43-4b94-8824-467abcbf9e54.webp\" class=\"glightbox-link\" aria-label=\"Winning Loadout\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/9b108e98-1f43-4b94-8824-467abcbf9e54.webp\" alt=\"Winning Loadout\"/ data-glightbox=\"description: Winning Loadout\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nAfter having brotato and doing a few runs every once in a while I **finally**\nbeat the most basic balanced run in the game!  Wyatt wanted to play tonight and\nits such an easy game to jump in do a few runs and move on without getting\noverly invested.\n\n\n![I almost died](https://dropper.waylonwalker.com/file/07c87b1d-60a0-4527-a045-d4203ca929db.webp)\n\n\u003e Watching back I cannot believe how lucky I got, barely scraping by with 1hp at this point\n\n\n![](https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4)\n\n\u003e the last 80s of the game\n\n\n![Winning Loadout](https://dropper.waylonwalker.com/file/9b108e98-1f43-4b94-8824-467abcbf9e54.webp)\n",
      "summary": "After having brotato and doing a few runs every once in a while I ** beat the most basic balanced run in the game! Wyatt wanted to play tonight and its such...",
      "date_published": "2026-02-11T20:48:08Z",
      "date_modified": "2026-02-11T20:48:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/brotato-balanced-win/",
      "url": "https://waylonwalker.com/shots/brotato-balanced-win/",
      "title": "Brotato Balanced Win",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4\" class=\"glightbox-link\" aria-label=\"Brotato Balanced Win\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4\" type=\"video/mp4\"\u003eBrotato Balanced Win\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTaking the W in a brotato run\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Brotato Balanced Win](https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4)\n\n\u003e Taking the W in a brotato run\n\n",
      "summary": "Taking the W in a brotato run",
      "image": "https://dropper.waylonwalker.com/file/f1711b94-dad1-4f97-b6ac-1de34db4a779.mp4",
      "date_published": "2026-02-11T20:47:48Z",
      "date_modified": "2026-02-11T20:47:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "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\u003ch2 id=\"albums\"\u003eAlbums \u003ca href=\"#albums\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/playlist?list=OLAK5uy_nQZeZomNaDner6XRg5FeJrzgdKXnGSJwY\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eAtreyu Greatest\nHits\u003c/a\u003e\u003c/strong\u003e - Greatest hits is 100% a cop out on my behalf, but this is legit the\nfull album I’ve listened to 10x more than any other album since having a cd\nplayer as a kid.  This is my go to skate jam album.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/playlist?list=OLAK5uy_k4Xnda2Pxyc90mpntw7hdOPCA3JKeOkRY\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eHybrid Theory\u003c/a\u003e - Linkin Park\u003c/strong\u003e This album was featured in almost moto part from my youth.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/playlist?list=OLAK5uy_ktsNq_asQthl1xOm_tXwpD9tZa5413YFc\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eThe Life of a Showgirl\u003c/a\u003e - Taylor Swift\u003c/strong\u003e - Best album to listen to as a family.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"artists\"\u003eArtists \u003ca href=\"#artists\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/channel/UC54RgORww0lUMVq4NwdwANQ\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eKillswitch Engage\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/channel/UCFcqi7MrlzIp9RMTtUlxE8g\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eAvenged Sevenfold\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/channel/UCZzZJcadWlszIvI7CmntVbA\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eAll That Remains\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://music.youtube.com/channel/UCP0efewXEcuCddMFLjlCDJQ\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/music.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/music.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eParkway Drive\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"must-see-gag-clips\"\u003eMust See Gag clips \u003ca href=\"#must-see-gag-clips\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://www.youtube.com/shorts/uCMu9MoRwCo\" 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\"\u003eBobby Lee - Dull Samauri Sword\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ca href=\"https://www.youtube.com/watch?v=EF8GhC-T_Mo\" 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\"\u003eEd Bassmaster - Look at this Car!!!\u003c/a\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ol\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\n## Albums\n\n1. **[Atreyu Greatest\n   Hits](https://music.youtube.com/playlist?list=OLAK5uy_nQZeZomNaDner6XRg5FeJrzgdKXnGSJwY\n   )** - Greatest hits is 100% a cop out on my behalf, but this is legit the\n   full album I've listened to 10x more than any other album since having a cd\n   player as a kid.  This is my go to skate jam album.\n1. **[Hybrid Theory](https://music.youtube.com/playlist?list=OLAK5uy_k4Xnda2Pxyc90mpntw7hdOPCA3JKeOkRY) - Linkin Park** This album was featured in almost moto part from my youth.\n1. **[The Life of a Showgirl](https://music.youtube.com/playlist?list=OLAK5uy_ktsNq_asQthl1xOm_tXwpD9tZa5413YFc) - Taylor Swift** - Best album to listen to as a family.\n\n## Artists\n\n1. **[Killswitch Engage](https://music.youtube.com/channel/UC54RgORww0lUMVq4NwdwANQ)**\n1. **[Avenged Sevenfold](https://music.youtube.com/channel/UCFcqi7MrlzIp9RMTtUlxE8g)**\n1. **[All That Remains](https://music.youtube.com/channel/UCZzZJcadWlszIvI7CmntVbA)**\n1. **[Parkway Drive](https://music.youtube.com/channel/UCP0efewXEcuCddMFLjlCDJQ)**\n\n## Must See Gag clips\n\n1. **[Bobby Lee - Dull Samauri Sword](https://www.youtube.com/shorts/uCMu9MoRwCo)**\n1. **[Ed Bassmaster - Look at this Car!!!](https://www.youtube.com/watch?v=EF8GhC-T_Mo)**\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": [
        "favorites",
        "slash"
      ]
    },
    {
      "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": [
        "opinions",
        "slash"
      ]
    },
    {
      "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": [
        "opinions",
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-923/",
      "url": "https://waylonwalker.com/thought-923/",
      "title": "💭 Background Patterns with CSS `corner-radius` – Frontend Master...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://frontendmasters.com/blog/background-patterns-with-css-corner-radius/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://frontendmasters.com/blog/wp-json/social-image-generator/v1/image/8505\" alt=\"Background Patterns with CSS `corner-radius` – Frontend Masters Blog — You might need to know this someday: you can style a div, put the div into SVG, then put the SVG in to CSS and use it as a repeating background.\" loading=\"lazy\"/ data-glightbox=\"description: Background Patterns with CSS `corner-radius` – Frontend Masters Blog — You might need to know this someday: you can style a div, put the div into SVG, then put the SVG in to CSS and use it as a repeating background.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBackground Patterns with CSS `corner-radius` – Frontend Masters Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eYou might need to know this someday: you can style a div, put the div into SVG, then put the SVG in to CSS and use it as a repeating background.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003efrontendmasters.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThese patterns are really good.  I like a good repeating background on a website.  Takes me back to the old days of web, but with a nice crispness that was never there on sites of old\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://frontendmasters.com/blog/background-patterns-with-css-corner-radius/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://frontendmasters.com/blog/wp-json/social-image-generator/v1/image/8505\" alt=\"Background Patterns with CSS `corner-radius` – Frontend Masters Blog — You might need to know this someday: you can style a div, put the div into SVG, then put the SVG in to CSS and use it as a repeating background.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBackground Patterns with CSS `corner-radius` – Frontend Masters Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eYou might need to know this someday: you can style a div, put the div into SVG, then put the SVG in to CSS and use it as a repeating background.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003efrontendmasters.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThese patterns are really good.  I like a good repeating background on a website.  Takes me back to the old days of web, but with a nice crispness that was never there on sites of old \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://frontendmasters.com/blog/background-patterns-with-css-corner-radius/",
      "date_published": "2026-02-10T08:41:45Z",
      "date_modified": "2026-02-10T08:41:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought",
        "webdev css"
      ]
    },
    {
      "id": "https://waylonwalker.com/pydantic-monty/",
      "url": "https://waylonwalker.com/pydantic-monty/",
      "title": "⭐ pydantic monty",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/pydantic/monty\" 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\"\u003emonty\u003c/a\u003e by \u003ca href=\"https://github.com/pydantic\" 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\"\u003epydantic\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eA minimal, secure Python interpreter written in Rust for use by AI\u003c/p\u003e\n",
      "content_text": "\nCheck out [monty](https://github.com/pydantic/monty) by [pydantic](https://github.com/pydantic). It's a well-crafted project with great potential.\n\nA minimal, secure Python interpreter written in Rust for use by AI\n",
      "summary": "Check out monty by pydantic. It's a well-crafted project with great potential.",
      "date_published": "2026-02-09T03:53:14Z",
      "date_modified": "2026-02-09T03:53:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "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\" aria-label=\"gradient keycap results\"\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\u003cfigcaption\u003e\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\u003c/figcaption\u003e\u003c/figure\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": [
        "keeb",
        "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\" aria-label=\"Camp Rock Sign\"\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\u003cfigcaption\u003e\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\u003c/figcaption\u003e\u003c/figure\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/nextlevelbuilder-ui-ux-pro-max-skill/",
      "url": "https://waylonwalker.com/nextlevelbuilder-ui-ux-pro-max-skill/",
      "title": "⭐ nextlevelbuilder ui-ux-pro-max-skill",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/nextlevelbuilder\" 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\"\u003enextlevelbuilder\u003c/a\u003e and their project \u003ca href=\"https://github.com/nextlevelbuilder/ui-ux-pro-max-skill\" 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\"\u003eui-ux-pro-max-skill\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eAn AI SKILL that provide design intelligence for building professional UI/UX multiple platforms\u003c/p\u003e\n",
      "content_text": "\nCheck out [nextlevelbuilder](https://github.com/nextlevelbuilder) and their project [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill).\n\nAn AI SKILL that provide design intelligence for building professional UI/UX multiple platforms\n",
      "summary": "Check out nextlevelbuilder and their project ui-ux-pro-max-skill.",
      "date_published": "2026-02-06T20:18:21Z",
      "date_modified": "2026-02-06T20:18:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/gradient-keycaps-in-bambu-studio/",
      "url": "https://waylonwalker.com/shots/gradient-keycaps-in-bambu-studio/",
      "title": "Gradient Keycaps In Bambu Studio",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7fd8f2f8-a701-4be9-8289-8f9d3bb3c405.webp\" class=\"glightbox-link\" aria-label=\"gradient keycaps in bambu studio\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/7fd8f2f8-a701-4be9-8289-8f9d3bb3c405.webp\" alt=\"gradient keycaps in bambu studio\"/ data-glightbox=\"description: gradient keycaps in bambu studio\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI have an idea for gradient keycaps using tri colored filliment, I’m excited to see how it turns out.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![gradient keycaps in bambu studio](https://dropper.waylonwalker.com/file/7fd8f2f8-a701-4be9-8289-8f9d3bb3c405.webp)\n\n\u003e I have an idea for gradient keycaps using tri colored filliment, I'm excited to see how it turns out.\n\n",
      "summary": "I have an idea for gradient keycaps using tri colored filliment, I'm excited to see how it turns out.",
      "image": "https://dropper.waylonwalker.com/file/7fd8f2f8-a701-4be9-8289-8f9d3bb3c405.webp",
      "date_published": "2026-02-06T19:53:05Z",
      "date_modified": "2026-02-06T19:53:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/pm-not-babysitter/",
      "url": "https://waylonwalker.com/pm-not-babysitter/",
      "title": "Pm Not Babysitter",
      "content_html": "\u003cp\u003eStop babysitting your agents, treat them like a real team and they will reward\nyou.\u003c/p\u003e\n\u003cp\u003eBack in December I saw theo make a comment that code is now cheap, its the run\nrate of models, He quoted a study, not sure that he fully even believed it, but\nit claimed that the average developer after all meetings, training, emails,\nplanning and extra shit in their day averages out 10 well tested lines of code\nper day.  Opus 3.5 made him 10k loc (lines of code) that day.\u003c/p\u003e\n\u003cp\u003eWe have all agreed for decades that lines of code is not a proxy to\nproductivity or quality.  Often more code means more risk, more review, more\ninfrastructure.  This has become MUCH different.  Lines of code are still far\nfrom any sort of good metric.  That aside, your agents are not doing 10k lines\nwith you babysitting them, and in fact its very likely that the product quality\nis MUCH worse as you babysit them.\u003c/p\u003e\n\u003cp\u003eYou need a tool for planning and tracking, otherwise you are playing babysitter\nrather than Product Manager (PM).\u003c/p\u003e\n",
      "content_text": "Stop babysitting your agents, treat them like a real team and they will reward\nyou.\n\nBack in December I saw theo make a comment that code is now cheap, its the run\nrate of models, He quoted a study, not sure that he fully even believed it, but\nit claimed that the average developer after all meetings, training, emails,\nplanning and extra shit in their day averages out 10 well tested lines of code\nper day.  Opus 3.5 made him 10k loc (lines of code) that day.\n\nWe have all agreed for decades that lines of code is not a proxy to\nproductivity or quality.  Often more code means more risk, more review, more\ninfrastructure.  This has become MUCH different.  Lines of code are still far\nfrom any sort of good metric.  That aside, your agents are not doing 10k lines\nwith you babysitting them, and in fact its very likely that the product quality\nis MUCH worse as you babysit them.\n\nYou need a tool for planning and tracking, otherwise you are playing babysitter\nrather than Product Manager (PM).\n",
      "summary": "Stop babysitting your agents, treat them like a real team and they will reward you.",
      "date_published": "2026-02-06T14:04:25Z",
      "date_modified": "2026-02-06T14:04:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/vercel-labs-agent-browser/",
      "url": "https://waylonwalker.com/vercel-labs-agent-browser/",
      "title": "⭐ vercel-labs agent-browser",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/vercel-labs/agent-browser\" 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\"\u003eagent-browser\u003c/a\u003e, created by \u003ca href=\"https://github.com/vercel-labs\" 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\"\u003evercel-labs\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eBrowser automation CLI for AI agents\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [agent-browser](https://github.com/vercel-labs/agent-browser), created by [vercel-labs](https://github.com/vercel-labs).\n\nBrowser automation CLI for AI agents\n",
      "summary": "If you're into interesting projects, don't miss out on agent-browser, created by vercel-labs.",
      "date_published": "2026-02-05T22:20:08Z",
      "date_modified": "2026-02-05T22:20:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/diff-kubernetes-manifest-with-cluster/",
      "url": "https://waylonwalker.com/diff-kubernetes-manifest-with-cluster/",
      "title": "diff kubernetes manifest with cluster",
      "content_html": "\u003cp\u003eLike a dufus this morning I did a hard reset on a \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repo for getting I was\nworking on a manifest for.  You see I generally use argo, but occasionally I\nhave no idea what I am doing or want yet and I start raw doggin it, fully aware\nthat I’m going to just nuke this namespace before getting it into a proper\nargocd.\u003c/p\u003e\n\u003cp\u003eI was overjoyed when I found out that you can diff your manifests with live\nproduction using the \u003ccode\u003ekubectl diff\u003c/code\u003e command.  It uses standard diff so you can\nbring all your fancy diff viewers you like.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# regular manifest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl diff -f k8s/shots -n shot\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# kustomize\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl diff -k k8s -n go-waylonwalker-com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# using a fancy diff viewer\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl diff -f k8s/shots -n shot \u003cspan class=\"p\"\u003e|\u003c/span\u003e delta\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# using an even fancier diff viewer\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# pinkies out for this one\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl diff -f k8s/shots -n shot \u003cspan class=\"p\"\u003e|\u003c/span\u003e delta --diff-so-fancy\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow I can get those changes back that I thought I lost, and apply updates with\nconfidence knowing what is about to change.\u003c/p\u003e\n",
      "content_text": "\nLike a dufus this morning I did a hard reset on a git repo for getting I was\nworking on a manifest for.  You see I generally use argo, but occasionally I\nhave no idea what I am doing or want yet and I start raw doggin it, fully aware\nthat I'm going to just nuke this namespace before getting it into a proper\nargocd.\n\nI was overjoyed when I found out that you can diff your manifests with live\nproduction using the `kubectl diff` command.  It uses standard diff so you can\nbring all your fancy diff viewers you like.\n\n``` bash\n# regular manifest\nkubectl diff -f k8s/shots -n shot\n# kustomize\nkubectl diff -k k8s -n go-waylonwalker-com\n# using a fancy diff viewer\nkubectl diff -f k8s/shots -n shot | delta\n# using an even fancier diff viewer\n# pinkies out for this one\nkubectl diff -f k8s/shots -n shot | delta --diff-so-fancy\n```\n\nNow I can get those changes back that I thought I lost, and apply updates with\nconfidence knowing what is about to change.\n",
      "summary": "Like a dufus this morning I did a hard reset on a git repo for getting I was working on a manifest for. You see I generally use argo, but occasionally I have...",
      "date_published": "2026-02-05T09:37:39Z",
      "date_modified": "2026-02-05T09:37:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-922/",
      "url": "https://waylonwalker.com/thought-922/",
      "title": "💭 The shovelware cometh",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jerodsanto.net/2026/02/the-shovelware-cometh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jerodsanto.net/share.png\" alt=\"The shovelware cometh — In September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\u0026lt;p\u0026gt;If so many developers are so extraordinarily productive using these tools, where is the flood of shovelware? We should be seeing apps of all shapes and sizes, video games, new websites, mobile apps, software-as-a-service apps — we should be drowning in choice. We should be in the middle of an indie software revolution. We should be seeing 10,000 Tetris clones on Steam.\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: The shovelware cometh — In September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\u0026lt;p\u0026gt;If so many developers are so extraordinarily productive using these tools, where is the flood of shovelware? We should be seeing apps of all shapes and sizes, video games, new websites, mobile apps, software-as-a-service apps — we should be drowning in choice. We should be in the middle of an indie software revolution. We should be seeing 10,000 Tetris clones on Steam.\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eThe shovelware cometh\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eIn September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eIf so many developers are so extraordinarily productive usi…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003ejerodsanto.net\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eNot surprising theirs a lag, between the models getting better, the tools getting better, and the masses getting better at using them, it takes time.  This is still quite a hockey stick.  I’m wondering how many are not posting on Show HN embarrassed they built something they know nothing about and afraid to get questions.  I have no idea how anyone would get this ratio, but if I were a betting man, Id bet the ratio of build/show went way up.  Plus we are probably getting a ton of people who have never heard of HN start building cool bespoke things for themselves and thats it, they use it, they love it, they might tell/show a friend.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jerodsanto.net/2026/02/the-shovelware-cometh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jerodsanto.net/share.png\" alt=\"The shovelware cometh — In September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\nIf so many developers are so extraordinarily productive using these tools, where is the flood of shovelware? We should be seeing apps of all shapes and sizes, video games, new websites, mobile apps, software-as-a-service apps — we should be drowning in choice. We should be in the middle of an indie software revolution. We should be seeing 10,000 Tetris clones on Steam.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe shovelware cometh\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\nIf so many developers are so extraordinarily productive usi...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejerodsanto.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNot surprising theirs a lag, between the models getting better, the tools getting better, and the masses getting better at using them, it takes time.  This is still quite a hockey stick.  I'm wondering how many are not posting on Show HN embarrassed they built something they know nothing about and afraid to get questions.  I have no idea how anyone would get this ratio, but if I were a betting man, Id bet the ratio of build/show went way up.  Plus we are probably getting a ton of people who have never heard of HN start building cool bespoke things for themselves and thats it, they use it, they love it, they might tell/show a friend.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://jerodsanto.net/2026/02/the-shovelware-cometh/",
      "date_published": "2026-02-03T21:45:51Z",
      "date_modified": "2026-02-03T21:45:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-921/",
      "url": "https://waylonwalker.com/thought-921/",
      "title": "💭 The shovelware cometh",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jerodsanto.net/2026/02/the-shovelware-cometh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jerodsanto.net/share.png\" alt=\"The shovelware cometh — In September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\u0026lt;p\u0026gt;If so many developers are so extraordinarily productive using these tools, where is the flood of shovelware? We should be seeing apps of all shapes and sizes, video games, new websites, mobile apps, software-as-a-service apps — we should be drowning in choice. We should be in the middle of an indie software revolution. We should be seeing 10,000 Tetris clones on Steam.\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: The shovelware cometh — In September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\u0026lt;p\u0026gt;If so many developers are so extraordinarily productive using these tools, where is the flood of shovelware? We should be seeing apps of all shapes and sizes, video games, new websites, mobile apps, software-as-a-service apps — we should be drowning in choice. We should be in the middle of an indie software revolution. We should be seeing 10,000 Tetris clones on Steam.\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eThe shovelware cometh\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eIn September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eIf so many developers are so extraordinarily productive usi…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003ejerodsanto.net\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eNot surprising theirs a lag, between the models getting better, the tools getting better, and the masses getting better at using them, it takes time.  This is still quite a hockey stick.  I’m wondering how many are not posting on Show HN embarrassed they built something they know nothing about and afraid to get questions.  I have no idea how anyone would get this ratio, but if I were a betting man, Id bet the ratio of build/show went way up.  Plus we are probably getting a ton of people who have never heard of HN start building cool bespoke things for themselves and thats it, they use it, they love it, they might tell/show a friend.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jerodsanto.net/2026/02/the-shovelware-cometh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jerodsanto.net/share.png\" alt=\"The shovelware cometh — In September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\nIf so many developers are so extraordinarily productive using these tools, where is the flood of shovelware? We should be seeing apps of all shapes and sizes, video games, new websites, mobile apps, software-as-a-service apps — we should be drowning in choice. We should be in the middle of an indie software revolution. We should be seeing 10,000 Tetris clones on Steam.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe shovelware cometh\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn September of last year, I covered a post by Mike Judge arguing that AI coding claims don’t add up, in which he asked this question:\n\nIf so many developers are so extraordinarily productive usi...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejerodsanto.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNot surprising theirs a lag, between the models getting better, the tools getting better, and the masses getting better at using them, it takes time.  This is still quite a hockey stick.  I'm wondering how many are not posting on Show HN embarrassed they built something they know nothing about and afraid to get questions.  I have no idea how anyone would get this ratio, but if I were a betting man, Id bet the ratio of build/show went way up.  Plus we are probably getting a ton of people who have never heard of HN start building cool bespoke things for themselves and thats it, they use it, they love it, they might tell/show a friend.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://jerodsanto.net/2026/02/the-shovelware-cometh/",
      "date_published": "2026-02-03T21:45:51Z",
      "date_modified": "2026-02-03T21:45:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/camp-rock-letters/",
      "url": "https://waylonwalker.com/shots/camp-rock-letters/",
      "title": "Camp Rock Letters",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/70432c14-ce44-4848-8a27-e1e0db209c45.webp\" class=\"glightbox-link\" aria-label=\"camp rock letters\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/70432c14-ce44-4848-8a27-e1e0db209c45.webp\" alt=\"camp rock letters\"/ data-glightbox=\"description: camp rock letters\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCamp Rock Letters going on the print bed for the show choir.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![camp rock letters](https://dropper.waylonwalker.com/file/70432c14-ce44-4848-8a27-e1e0db209c45.webp)\n\n\u003e Camp Rock Letters going on the print bed for the show choir.\n\n\n",
      "summary": "Camp Rock Letters going on the print bed for the show choir.",
      "image": "https://dropper.waylonwalker.com/file/70432c14-ce44-4848-8a27-e1e0db209c45.webp",
      "date_published": "2026-02-03T19:49:29Z",
      "date_modified": "2026-02-03T19:49:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-23/",
      "url": "https://waylonwalker.com/ping-23/",
      "title": "Ping 23",
      "content_html": "\u003cp\u003eI taught wyatt \u003cspan style=\"display:inline-block;width:1em;height:1em;background:#bada55;border:1px\nsolid #000;\"\u003e\u003c/span\u003e \u003ccode\u003e#bada55\u003c/code\u003e green, I apologize in advance, I underestimate\nthe power of immature humor has on him.\u003c/p\u003e\n",
      "content_text": "\nI taught wyatt \u003cspan\nstyle=\"display:inline-block;width:1em;height:1em;background:#bada55;border:1px\nsolid #000;\"\u003e\u003c/span\u003e `#bada55` green, I apologize in advance, I underestimate\nthe power of immature humor has on him.\n\n",
      "summary": "I taught wyatt green, I apologize in advance, I underestimate the power of immature humor has on him.",
      "date_published": "2026-02-03T16:50:52Z",
      "date_modified": "2026-02-03T16:50:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "parenthood",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-920/",
      "url": "https://waylonwalker.com/thought-920/",
      "title": "💭 dax on X: \"finally got around to setting up an always on openc...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/thdxr/status/2017691649384620057\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI tried this flow [of running an opencode server on tailscale] on day one of getting opencode, I wanted to prompt from my phone while were were  running lights at the theater. It kinda worked, but the ui was really bad on phone, hard to use and the experience overall–it felt buggy.  Happy to see they are making improvements and it might now be ready for some real use.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/file/9065fcb2-5e40-479c-967e-498bc9bb6a4f.mp4\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dropper.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dropper.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://dropper.waylonwalker.com/file/9065fcb2-5e40-479c-967e-498bc9bb6a4f.mp4\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/thdxr/status/2017691649384620057\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI tried this flow [of running an opencode server on tailscale] on day one of getting opencode, I wanted to prompt from my phone while were were  running lights at the theater. It kinda worked, but the ui was really bad on phone, hard to use and the experience overall--it felt buggy.  Happy to see they are making improvements and it might now be ready for some real use.\n\nhttps://dropper.waylonwalker.com/file/9065fcb2-5e40-479c-967e-498bc9bb6a4f.mp4\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/thdxr/status/2017691649384620057",
      "date_published": "2026-02-03T08:18:39Z",
      "date_modified": "2026-02-03T08:18:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "dev",
        "llm",
        "opencode",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-919/",
      "url": "https://waylonwalker.com/thought-919/",
      "title": "💭 Short Month, Big Ideas (February 2026 Wallpapers Edition) — Sm...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-eternal-tech-preview-opt.png\" alt=\"Short Month, Big Ideas (February 2026 Wallpapers Edition) — Smashing Magazine — Let’s make the most of the shortest month of the year with a new collection of desktop wallpapers that are sure to bring a smile to your face — and maybe spark your creativity, too. All of them were designed with love by the community for the community and can be downloaded for free. Happy February!\" loading=\"lazy\"/ data-glightbox=\"description: Short Month, Big Ideas (February 2026 Wallpapers Edition) — Smashing Magazine — Let’s make the most of the shortest month of the year with a new collection of desktop wallpapers that are sure to bring a smile to your face — and maybe spark your creativity, too. All of them were designed with love by the community for the community and can be downloaded for free. Happy February!\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eShort Month, Big Ideas (February 2026 Wallpapers Edition) — Smashing Magazine\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLet’s make the most of the shortest month of the year with a new collection of desktop wallpapers that are sure to bring a smile to your face — and maybe spark your creativity, too. All of them...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSmashing Magazine · smashingmagazine.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003etest\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://files.smashing.media/articles/desktop-wallpaper-calendars-february-2026/feb-26-eternal-tech-preview-opt.png\" alt=\"Short Month, Big Ideas (February 2026 Wallpapers Edition) — Smashing Magazine — Let’s make the most of the shortest month of the year with a new collection of desktop wallpapers that are sure to bring a smile to your face — and maybe spark your creativity, too. All of them were designed with love by the community for the community and can be downloaded for free. Happy February!\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eShort Month, Big Ideas (February 2026 Wallpapers Edition) — Smashing Magazine\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLet’s make the most of the shortest month of the year with a new collection of desktop wallpapers that are sure to bring a smile to your face — and maybe spark your creativity, too. All of them...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSmashing Magazine \u0026middot; smashingmagazine.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ntest\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.smashingmagazine.com/2026/01/desktop-wallpaper-calendars-february-2026/",
      "date_published": "2026-02-02T08:48:03Z",
      "date_modified": "2026-02-02T08:48:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "design",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-21/",
      "url": "https://waylonwalker.com/ping-21/",
      "title": "Ping 21",
      "content_html": "\u003cp\u003eAgents right now\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ecan I access the project you mentioned?\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eyes\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eCan i access /tmp\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eyes, just do it\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eWhile I’m I at it, \u003ccode\u003ekubctl delete...\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003eyanks plug front internet\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nAgents right now\n\n* can I access the project you mentioned?\n\n\u003e yes\n\n* Can i access /tmp\n\n\u003e yes, just do it\n\n* While I'm I at it, `kubctl delete...`\n\n\u003e yanks plug front internet\n",
      "summary": "Agents right now",
      "date_published": "2026-01-29T07:30:59Z",
      "date_modified": "2026-01-29T07:30:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/agent-management-is-exhausting/",
      "url": "https://waylonwalker.com/agent-management-is-exhausting/",
      "title": "Agent Management Is Exhausting",
      "content_html": "\u003cp\u003eThe state of development in early 2026 is all wrapped around learning how to\nmanage many agents running in parallel. Everyone’s trying to figure out the\nworkflow.\u003c/p\u003e\n\u003ch2 id=\"the-plan-is-everything\"\u003eThe Plan Is Everything \u003ca href=\"#the-plan-is-everything\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe secret I’ve discovered is a good, well-defined plan. This could be a\nmarkdown file or a GitHub issue. Agents are actually great at writing these for\nyou. They’ll include reproduction steps, outline changes needed, and structure\nthe work.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eThis\u003c/strong\u003e is your opportunity to step in. Read the plan. Look for hallucinations.\nSpot where it’s going off track. Edit the plan before the agent starts coding.\u003c/p\u003e\n\u003cp\u003eI had one today where it laid out reproduction steps beautifully, but I could\nadd context about network requests that completely changed the approach. This\nediting phase is what most people are missing right now. Skip it and you’ll\nwatch your agent solve the wrong problem with impressive efficiency.\u003c/p\u003e\n\u003ch2 id=\"the-pace-problem\"\u003eThe Pace Problem \u003ca href=\"#the-pace-problem\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere’s what nobody warned me about: managing these things is \u003cem\u003eexhausting\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003eDepending on the day, agents move so damn fast. I can barely research, find, and\nraise issues as fast as Claude can implement features and fixes. It’s like\ntrying to speedrun a Minecraft seed when you just figured out how to craft a\npickaxe.\u003c/p\u003e\n\u003ch2 id=\"a-different-kind-of-work\"\u003eA Different Kind of Work \u003ca href=\"#a-different-kind-of-work\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis stretches a different part of my brain than I’m used to using. I’m learning\nnew skills around:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIssue tracking and management at high velocity\u003c/li\u003e\n\u003cli\u003eKnowing which models handle which tasks best\u003c/li\u003e\n\u003cli\u003eSpotting when a session is about to go sideways from context bloat or bad\ncompaction\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI had a session yesterday where the context got poisoned with a wrong\nassumption. The agent spent 20 minutes building on that false premise before I\ncaught it. That’s 20 minutes of perfectly executed code solving the wrong\nproblem entirely.\u003c/p\u003e\n\u003ch2 id=\"worth-it-but-hard\"\u003eWorth It, But Hard \u003ca href=\"#worth-it-but-hard\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m not going to hype-bro you and say this is easy or that you’re wrong to be\nskeptical. If you have the opportunity to work with agents, it’s worth learning\nproper techniques.\u003c/p\u003e\n\u003cp\u003eIt’s not easy. It requires actual management skills, not just\nprompting skills. And yeah, I’m tired.\u003c/p\u003e\n",
      "content_text": "\nThe state of development in early 2026 is all wrapped around learning how to\nmanage many agents running in parallel. Everyone's trying to figure out the\nworkflow.\n\n## The Plan Is Everything\n\nThe secret I've discovered is a good, well-defined plan. This could be a\nmarkdown file or a GitHub issue. Agents are actually great at writing these for\nyou. They'll include reproduction steps, outline changes needed, and structure\nthe work.\n\n**This** is your opportunity to step in. Read the plan. Look for hallucinations.\nSpot where it's going off track. Edit the plan before the agent starts coding.\n\nI had one today where it laid out reproduction steps beautifully, but I could\nadd context about network requests that completely changed the approach. This\nediting phase is what most people are missing right now. Skip it and you'll\nwatch your agent solve the wrong problem with impressive efficiency.\n\n## The Pace Problem\n\nHere's what nobody warned me about: managing these things is *exhausting*.\n\nDepending on the day, agents move so damn fast. I can barely research, find, and\nraise issues as fast as Claude can implement features and fixes. It's like\ntrying to speedrun a Minecraft seed when you just figured out how to craft a\npickaxe.\n\n## A Different Kind of Work\n\nThis stretches a different part of my brain than I'm used to using. I'm learning\nnew skills around:\n\n- Issue tracking and management at high velocity\n- Knowing which models handle which tasks best\n- Spotting when a session is about to go sideways from context bloat or bad\n  compaction\n\nI had a session yesterday where the context got poisoned with a wrong\nassumption. The agent spent 20 minutes building on that false premise before I\ncaught it. That's 20 minutes of perfectly executed code solving the wrong\nproblem entirely.\n\n## Worth It, But Hard\n\nI'm not going to hype-bro you and say this is easy or that you're wrong to be\nskeptical. If you have the opportunity to work with agents, it's worth learning\nproper techniques.\n\nIt's not easy. It requires actual management skills, not just\nprompting skills. And yeah, I'm tired.\n",
      "summary": "The state of development in early 2026 is all wrapped around learning how to manage many agents running in parallel. Everyone's trying to figure out the...",
      "date_published": "2026-01-26T14:38:35Z",
      "date_modified": "2026-01-26T14:38:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agents",
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-918/",
      "url": "https://waylonwalker.com/thought-918/",
      "title": "💭 Peter Steinberger",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://steipete.me/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://steipete.me/peter-avatar.jpg\" alt=\"Peter Steinberger — Peter Steinberger: AI-powered tools from Swift roots to web frontiers. Every commit lands on GitHub for you to fork \u0026amp; remix.\" loading=\"lazy\"/ data-glightbox=\"description: Peter Steinberger — Peter Steinberger: AI-powered tools from Swift roots to web frontiers. Every commit lands on GitHub for you to fork \u0026amp; remix.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePeter Steinberger\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePeter Steinberger: AI-powered tools from Swift roots to web frontiers. Every commit lands on GitHub for you to fork \u0026amp; remix.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esteipete.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ePete has a ton of good posts here and actually ships a lot of product.  reccommended read.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://steipete.me/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://steipete.me/peter-avatar.jpg\" alt=\"Peter Steinberger — Peter Steinberger: AI-powered tools from Swift roots to web frontiers. Every commit lands on GitHub for you to fork \u0026amp; remix.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePeter Steinberger\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePeter Steinberger: AI-powered tools from Swift roots to web frontiers. Every commit lands on GitHub for you to fork \u0026amp; remix.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esteipete.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nPete has a ton of good posts here and actually ships a lot of product.  reccommended read.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://steipete.me/",
      "date_published": "2026-01-26T14:00:57Z",
      "date_modified": "2026-01-26T14:00:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "later",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-917/",
      "url": "https://waylonwalker.com/thought-917/",
      "title": "💭 Stay away from my trash! - tldraw: Build whiteboards in React ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tldraw.dev/blog/stay-away-from-my-trash\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.sanity.io/images/ij3ytvrl/production/f16bd2f50cf91e9ef545fbd0821ea88916e23e9e-1600x900.png?w=1200\u0026amp;fit=max\" alt=\"Stay away from my trash! — If writing the code is the easy part, why would I want someone else to write it?\" loading=\"lazy\"/ width=\"1200\" data-glightbox=\"description: Stay away from my trash! — If writing the code is the easy part, why would I want someone else to write it?\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eStay away from my trash!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf writing the code is the easy part, why would I want someone else to write it?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etldraw.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eread later\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tldraw.dev/blog/stay-away-from-my-trash\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.sanity.io/images/ij3ytvrl/production/f16bd2f50cf91e9ef545fbd0821ea88916e23e9e-1600x900.png?w=1200\u0026amp;fit=max\" alt=\"Stay away from my trash! — If writing the code is the easy part, why would I want someone else to write it?\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eStay away from my trash!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf writing the code is the easy part, why would I want someone else to write it?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etldraw.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nread later\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://tldraw.dev/blog/stay-away-from-my-trash",
      "date_published": "2026-01-26T13:59:50Z",
      "date_modified": "2026-01-26T13:59:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "later",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/stop-using-boomer-ai/",
      "url": "https://waylonwalker.com/stop-using-boomer-ai/",
      "title": "Stop Using Boomer Ai",
      "content_html": "\u003cp\u003eI was listening to these guys talk about migrating off of boomer ai the other\nday.  Introducing the term boomer ai to describe using chat, copy, paste\ninstead of agents.  Something magical happened to the tooling and models around\ndecember, they got really good.  The chatgpt $20 plan hooked into opencode is\ngood, the Free models in Opencode Zen (Big Pickle and Kimi K2.5 Free) are\nreally good.  Neither of these quite match up to the speed and quality of the\nlarger plans, but they are good.  good enough to throw away your boomer ai\ntechniques and start using agents.  Agents are the future, and they are here\nnow.  If you are still using chat, copy, paste, you are doing it wrong.  Stop\nusing boomer ai and start using agents.  You will be amazed at how much better\nyour results will be.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=3dmPKuTWbsI\" 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\"\u003ehttps://www.youtube.com/watch?v=3dmPKuTWbsI\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI was listening to these guys talk about migrating off of boomer ai the other\nday.  Introducing the term boomer ai to describe using chat, copy, paste\ninstead of agents.  Something magical happened to the tooling and models around\ndecember, they got really good.  The chatgpt $20 plan hooked into opencode is\ngood, the Free models in Opencode Zen (Big Pickle and Kimi K2.5 Free) are\nreally good.  Neither of these quite match up to the speed and quality of the\nlarger plans, but they are good.  good enough to throw away your boomer ai\ntechniques and start using agents.  Agents are the future, and they are here\nnow.  If you are still using chat, copy, paste, you are doing it wrong.  Stop\nusing boomer ai and start using agents.  You will be amazed at how much better\nyour results will be.\n\nhttps://www.youtube.com/watch?v=3dmPKuTWbsI\n",
      "summary": "I was listening to these guys talk about migrating off of boomer ai the other day. Introducing the term boomer ai to describe using chat, copy, paste instead...",
      "date_published": "2026-01-26T13:12:29Z",
      "date_modified": "2026-01-26T13:12:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-916/",
      "url": "https://waylonwalker.com/thought-916/",
      "title": "💭 I'm back from the dead",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/im-back-from-the-dead/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20260124140321_9abef62f.png\" alt=\"I — The flu hit me like a freight train right at the start of the year, along with\nthe most stress I\u0026#39;ve ever felt at work dropping on me at the same time, I\u0026amp;#x\" loading=\"lazy\"/ data-glightbox=\"description: I — The flu hit me like a freight train right at the start of the year, along with\nthe most stress I\u0026#39;ve ever felt at work dropping on me at the same time, I\u0026amp;#x\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eI\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe flu hit me like a freight train right at the start of the year, along with\nthe most stress I\u0026#39;ve ever felt at work dropping on me at the same time, I\u0026amp;#x\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m jelous… as I was getting better, I got kicked down again. cant hold a conversation without coughing.  Its hitting people from all over like crazy this year.  so glad its just the flu and not something seriously harmful for hospitalization.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/im-back-from-the-dead/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20260124140321_9abef62f.png\" alt=\"I — The flu hit me like a freight train right at the start of the year, along with\nthe most stress I\u0026#39;ve ever felt at work dropping on me at the same time, I\u0026amp;#x\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eI\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe flu hit me like a freight train right at the start of the year, along with\nthe most stress I\u0026#39;ve ever felt at work dropping on me at the same time, I\u0026amp;#x\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm jelous... as I was getting better, I got kicked down again. cant hold a conversation without coughing.  Its hitting people from all over like crazy this year.  so glad its just the flu and not something seriously harmful for hospitalization.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/im-back-from-the-dead/",
      "date_published": "2026-01-25T20:48:26Z",
      "date_modified": "2026-01-25T20:48:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "note",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/mentions/",
      "url": "https://waylonwalker.com/mentions/",
      "title": "Mentions",
      "content_html": "\u003cp\u003eI can now just mention people from my \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e  \u003ca href=\"/about/\" class=\"wikilink\" data-title=\"Waylon Walker\" data-description=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-date=\"2021-11-20\" data-preview=\"Husband, dad of two, and hobbyist builder of things on the internet.\"\u003eWaylon Walker\u003c/a\u003e [[ blogroll ]] like @simonwillison.net or @swyx.io\u003c/p\u003e\n\u003cp\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  [[ upto ]] [[ doing ]]\u003c/p\u003e\n\u003caside class=\"admonition aside aside-right\"\u003e\n\u003cp class=\"admonition-title\"\u003eAside\u003c/p\u003e\n\u003cp\u003eThis is an aside!\u003c/p\u003e\n\u003c/aside\u003e\n",
      "content_text": "\nI can now just mention people from my \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e  \u003ca href=\"/about/\" class=\"wikilink\" data-title=\"Waylon Walker\" data-description=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-date=\"2021-11-20\"\u003eWaylon Walker\u003c/a\u003e [[ blogroll ]] like @simonwillison.net or @swyx.io\n\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  [[ upto ]] [[ doing ]]\n\n\n!!! aside \"Aside\"\n\n    This is an aside!\n",
      "summary": "I can now just mention people from my markata about blogroll like @simonwillison.net or @swyx.io",
      "date_published": "2026-01-24T19:11:15Z",
      "date_modified": "2026-01-24T19:11:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markata"
      ]
    },
    {
      "id": "https://waylonwalker.com/wilsonzlin-fastrender/",
      "url": "https://waylonwalker.com/wilsonzlin-fastrender/",
      "title": "⭐ wilsonzlin fastrender",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/wilsonzlin/fastrender\" 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\"\u003efastrender\u003c/a\u003e by \u003ca href=\"https://github.com/wilsonzlin\" 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\"\u003ewilsonzlin\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eExperimental new browser engine\u003c/p\u003e\n",
      "content_text": "\nThe work on [fastrender](https://github.com/wilsonzlin/fastrender) by [wilsonzlin](https://github.com/wilsonzlin).\n\nExperimental new browser engine\n",
      "summary": "The work on fastrender by wilsonzlin.",
      "date_published": "2026-01-24T03:54:07Z",
      "date_modified": "2026-01-24T03:54:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/2026-01-23-notes/",
      "url": "https://waylonwalker.com/2026-01-23-notes/",
      "title": "2026-01-23 Notes",
      "content_html": "\u003cp\u003eNext for markata go\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEmbed post, internal and external\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eOg\u003c/a\u003e images\u003c/li\u003e\n\u003cli\u003ePost importer - thoughts\u003c/li\u003e\n\u003cli\u003eReader / blogroll plugin\u003c/li\u003e\n\u003cli\u003eK9s inspired tui\u003c/li\u003e\n\u003cli\u003e:files, :posts, :tags, :feeds,\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eExtra classes\u003c/p\u003e\n\u003cp\u003eWikilinks\u003c/p\u003e\n\u003cp\u003eLsp\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eComplete wikilinks\u003c/li\u003e\n\u003cli\u003eComplete mentions\u003c/li\u003e\n\u003cli\u003eDocument diagnostic\u003c/li\u003e\n\u003cli\u003eWorkspace diagnostics\u003c/li\u003e\n\u003cli\u003eConfig completions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJinja_md obsidian like support\u003c/p\u003e\n\u003cp\u003eView as in footer\u003c/p\u003e\n\u003cp\u003eArchive missing grid of pages\u003c/p\u003e\n\u003cp\u003eNav footer different on feeds than post\nSometimes the skip to content peeks into the top left corner of the page by a few pixels, it’s distracting\u003c/p\u003e\n\u003cp\u003eTap to zoom image\u003c/p\u003e\n\u003cp\u003eGoogle font\u003c/p\u003e\n\u003cp\u003eSitemap\u003c/p\u003e\n\u003cp\u003eBackground image support\u003c/p\u003e\n\u003cp\u003eMouse support in tui works, not in tmux\u003c/p\u003e\n\u003cp\u003eAll optional plugins with config from user should raise warning configured not able\u003c/p\u003e\n\u003cp\u003eLines of code should be separate from word count\u003c/p\u003e\n\u003cp\u003eTui press enter, should see full post and scroll/read render markdown\u003c/p\u003e\n\u003cp\u003eUpdate branding from fast to comprehensive\u003c/p\u003e\n\u003cp\u003eDebug pages, show config\u003c/p\u003e\n\u003chr/\u003e\n\u003cul\u003e\n\u003cli\u003eImage gallery\u003c/li\u003e\n\u003cli\u003ecarousel\u003c/li\u003e\n\u003cli\u003ePrev/next\u003c/li\u003e\n\u003cli\u003eEmbedfeed\u003c/li\u003e\n\u003cli\u003eFix aside\u003c/li\u003e\n\u003cli\u003eContrast / flashbang check on admonitions styles on all themes.\u003c/li\u003e\n\u003cli\u003eGlossary\u003c/li\u003e\n\u003cli\u003eBanner post\u003c/li\u003e\n\u003cli\u003eKeys\u003c/li\u003e\n\u003cli\u003eContainers\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cul\u003e\n\u003cli\u003ePage 1 link is always highlighted\u003c/li\u003e\n\u003cli\u003ePage 1 link is broken when coming from page 1\u003c/li\u003e\n\u003cli\u003eOn mobile search is too wide\u003c/li\u003e\n\u003cli\u003eShots needs warmed with a head request\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eTags\u003c/p\u003e\n\u003cp\u003eContacts\u003c/p\u003e\n",
      "content_text": "Next for markata go\n\n* Embed post, internal and external \n* Og images\n* Post importer - thoughts\n* Reader / blogroll plugin \n* K9s inspired tui\n* :files, :posts, :tags, :feeds, \n\n---\n\n\nExtra classes\n\nWikilinks\n\nLsp \n* Complete wikilinks\n* Complete mentions\n* Document diagnostic \n* Workspace diagnostics \n* Config completions\n\n\nJinja_md obsidian like support\n\nView as in footer\n\nArchive missing grid of pages\n\nNav footer different on feeds than post\nSometimes the skip to content peeks into the top left corner of the page by a few pixels, it's distracting \n\nTap to zoom image \n\nGoogle font\n\nSitemap\n\nBackground image support\n\nMouse support in tui works, not in tmux\n\nAll optional plugins with config from user should raise warning configured not able\n\nLines of code should be separate from word count\n\nTui press enter, should see full post and scroll/read render markdown\n\nUpdate branding from fast to comprehensive \n\nDebug pages, show config \n\n---\n\n* Image gallery\n* carousel\n* Prev/next\n* Embedfeed\n* Fix aside\n* Contrast / flashbang check on admonitions styles on all themes.\n* Glossary\n* Banner post\n* Keys\n* Containers\n\n---\n\n* Page 1 link is always highlighted \n* Page 1 link is broken when coming from page 1\n* On mobile search is too wide \n* Shots needs warmed with a head request\n* \n\n---\n\nTags\n\nContacts\n\n",
      "summary": "Next for markata go",
      "date_published": "2026-01-23T22:28:38Z",
      "date_modified": "2026-01-23T22:28:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/flosch-pongo2/",
      "url": "https://waylonwalker.com/flosch-pongo2/",
      "title": "⭐ flosch pongo2",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/flosch\" 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\"\u003eflosch\u003c/a\u003e and their project \u003ca href=\"https://github.com/flosch/pongo2\" 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\"\u003epongo2\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eDjango-syntax like template-engine for Go\u003c/p\u003e\n",
      "content_text": "\nCheck out [flosch](https://github.com/flosch) and their project [pongo2](https://github.com/flosch/pongo2).\n\nDjango-syntax like template-engine for Go\n",
      "summary": "Check out flosch and their project pongo2.",
      "date_published": "2026-01-22T23:34:17Z",
      "date_modified": "2026-01-22T23:34:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-915/",
      "url": "https://waylonwalker.com/thought-915/",
      "title": "💭 DockFrame - Modular USB-C Hub with Framework-Compatible Expans...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dockframe.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dockframe.hwlab.io/images/dockframe_front.png\" alt=\"DockFrame - Modular USB-C Hub with Framework-Compatible Expansion Cards — DockFrame is a modular USB-C hub that accepts Framework-compatible Expansion Cards and custom Tool Cards. Dock once, reconfigure whenever.\" loading=\"lazy\"/ data-glightbox=\"description: DockFrame - Modular USB-C Hub with Framework-Compatible Expansion Cards — DockFrame is a modular USB-C hub that accepts Framework-compatible Expansion Cards and custom Tool Cards. Dock once, reconfigure whenever.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDockFrame - Modular USB-C Hub with Framework-Compatible Expansion Cards\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDockFrame is a modular USB-C hub that accepts Framework-compatible Expansion Cards and custom Tool Cards. Dock once, reconfigure whenever.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDockFrame · dockframe.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDockframe looks like a really cool concept using the framework tiles ( the connectors idk what they are called ) to build a dock.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dockframe.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dockframe.hwlab.io/images/dockframe_front.png\" alt=\"DockFrame - Modular USB-C Hub with Framework-Compatible Expansion Cards — DockFrame is a modular USB-C hub that accepts Framework-compatible Expansion Cards and custom Tool Cards. Dock once, reconfigure whenever.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDockFrame - Modular USB-C Hub with Framework-Compatible Expansion Cards\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDockFrame is a modular USB-C hub that accepts Framework-compatible Expansion Cards and custom Tool Cards. Dock once, reconfigure whenever.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDockFrame \u0026middot; dockframe.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDockframe looks like a really cool concept using the framework tiles ( the connectors idk what they are called ) to build a dock.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dockframe.com/",
      "date_published": "2026-01-21T21:21:53Z",
      "date_modified": "2026-01-21T21:21:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "hardware",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/what-your-coding-tool-says-about-you/",
      "url": "https://waylonwalker.com/what-your-coding-tool-says-about-you/",
      "title": "What Your Coding Tool Says About You",
      "content_html": "\u003cul\u003e\n\u003cli\u003eopen code - libre free as in beer and speech\u003c/li\u003e\n\u003cli\u003eCopilot - corporate 9-5er\u003c/li\u003e\n\u003cli\u003eCursor - You sip on Philz coffee with your macbook\u003c/li\u003e\n\u003cli\u003eClaude Code - Agentic Workflows or Bust\u003c/li\u003e\n\u003cli\u003eJetbrains - I didn’t know you wrote java\u003c/li\u003e\n\u003cli\u003eVim/neovim - definite neck beard\u003c/li\u003e\n\u003cli\u003eVsCode - What else is there?\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "* open code - libre free as in beer and speech\n* Copilot - corporate 9-5er\n* Cursor - You sip on Philz coffee with your macbook\n* Claude Code - Agentic Workflows or Bust\n* Jetbrains - I didn't know you wrote java\n* Vim/neovim - definite neck beard\n* VsCode - What else is there?",
      "summary": "Copilot - corporate 9-5er * Claude Code - Agentic Workflows or Bust * Vim/neovim - definite neck beard * VsCode - What else is there?",
      "date_published": "2026-01-21T16:25:41Z",
      "date_modified": "2026-01-21T16:25:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "dev",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-22/",
      "url": "https://waylonwalker.com/ping-22/",
      "title": "Quick Tip To Get Agents Running Longer",
      "content_html": "\u003cp\u003eHere’s a quick tip if you want to get your agents running longer, \u003cstrong\u003eprompt better\u003c/strong\u003e.\u003c/p\u003e\n",
      "content_text": "\nHere's a quick tip if you want to get your agents running longer, **prompt better**.\n",
      "summary": "Here's a quick tip if you want to get your agents running longer, **.",
      "date_published": "2026-01-21T16:22:26Z",
      "date_modified": "2026-01-21T16:22:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/format-markdown-with-mdformat/",
      "url": "https://waylonwalker.com/format-markdown-with-mdformat/",
      "title": "format markdown with mdformat",
      "content_html": "\u003cp\u003eI really wish I would have got this right a few years ago. Theres a couple of\nflags I had to use to get mdformat to do hard wraps at 80 characters and not\nwreck tables. This mix of flags and plugins is workign really well for me so\nfar.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emdfmt\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    uvx \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-ruff\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-beautysh\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-web\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-config\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-gfm\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-front-matters\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-wikilink\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --with \u003cspan class=\"s2\"\u003e\u0026#34;mdformat-simple-breaks\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        mdformat \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --wrap \u003cspan class=\"m\"\u003e80\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --end-of-line lf \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --codeformatters python \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --codeformatters bash \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$@\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd as pre-commmit.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"l\"\u003erepos\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003erepo\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://github.com/hukkin/mdformat\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erev\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e1.0.0\u003c/span\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"c\"\u003e# pin to the version you want\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emdformat\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eargs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- --\u003cspan class=\"l\"\u003ewrap\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"s2\"\u003e\u0026#34;80\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- --\u003cspan class=\"l\"\u003eend-of-line\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003elf\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- --\u003cspan class=\"l\"\u003ecodeformatters\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003epython\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- --\u003cspan class=\"l\"\u003ecodeformatters\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003ebash\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eadditional_dependencies\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-ruff\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-beautysh\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-web\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-config\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-gfm\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-front-matters\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-wikilink\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"l\"\u003emdformat-simple-breaks\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI really wish I would have got this right a few years ago. Theres a couple of\nflags I had to use to get mdformat to do hard wraps at 80 characters and not\nwreck tables. This mix of flags and plugins is workign really well for me so\nfar.\n\n```bash\nmdfmt() {\n    uvx \\\n        --with \"mdformat-ruff\" \\\n        --with \"mdformat-beautysh\" \\\n        --with \"mdformat-web\" \\\n        --with \"mdformat-config\" \\\n        --with \"mdformat-gfm\" \\\n        --with \"mdformat-front-matters\" \\\n        --with \"mdformat-wikilink\" \\\n        --with \"mdformat-simple-breaks\" \\\n        mdformat \\\n        --wrap 80 \\\n        --end-of-line lf \\\n        --codeformatters python \\\n        --codeformatters bash \\\n        \"$@\"\n}\n```\n\nAnd as pre-commmit.\n\n```yaml\nrepos\n  - repo: https://github.com/hukkin/mdformat\n    rev: 1.0.0  # pin to the version you want\n    hooks:\n      - id: mdformat\n        args:\n          - --wrap\n          - \"80\"\n          - --end-of-line\n          - lf\n          - --codeformatters\n          - python\n          - --codeformatters\n          - bash\n        additional_dependencies:\n          - mdformat-ruff\n          - mdformat-beautysh\n          - mdformat-web\n          - mdformat-config\n          - mdformat-gfm\n          - mdformat-front-matters\n          - mdformat-wikilink\n          - mdformat-simple-breaks\n```\n",
      "summary": "I really wish I would have got this right a few years ago. Theres a couple of flags I had to use to get mdformat to do hard wraps at 80 characters and not...",
      "date_published": "2026-01-19T20:41:14Z",
      "date_modified": "2026-01-19T20:41:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-914/",
      "url": "https://waylonwalker.com/thought-914/",
      "title": "💭 make no mistakes by Beginbot | Suno",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://suno.com/song/f5821216-ea6e-49c3-98de-67880e517a89\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn2.suno.ai/image_large_f5821216-ea6e-49c3-98de-67880e517a89.jpeg\" alt=\"make no mistakes — Listen and make your own on Suno.\" loading=\"lazy\"/ data-glightbox=\"description: make no mistakes — Listen and make your own on Suno.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003emake no mistakes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eListen and make your own on Suno.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esuno.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAi prompt music, the right level of cringe to be great.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://suno.com/song/f5821216-ea6e-49c3-98de-67880e517a89\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn2.suno.ai/image_large_f5821216-ea6e-49c3-98de-67880e517a89.jpeg\" alt=\"make no mistakes — Listen and make your own on Suno.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003emake no mistakes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eListen and make your own on Suno.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esuno.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAi prompt music, the right level of cringe to be great.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://suno.com/song/f5821216-ea6e-49c3-98de-67880e517a89",
      "date_published": "2026-01-19T20:25:15Z",
      "date_modified": "2026-01-19T20:25:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-913/",
      "url": "https://waylonwalker.com/thought-913/",
      "title": "💭 I Hope This Email Finds You Before I Do - Last Week in AWS Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.lastweekinaws.com/blog/i-hope-this-email-finds-you-before-i-do/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.lastweekinaws.com/wp-content/uploads/2026/01/header-1768364958717.jpg\" alt=\"I Hope This Email Finds You Before I Do — I Hope This Email Finds You Before I Do\" loading=\"lazy\"/ data-glightbox=\"description: I Hope This Email Finds You Before I Do — I Hope This Email Finds You Before I Do\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eI Hope This Email Finds You Before I Do\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI Hope This Email Finds You Before I Do\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLast Week in AWS · lastweekinaws.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis post was filled with real life, snark, entertainment, feelings.  I get a lot of these emails that claim they can change my SEO game if I give them 500, for a site making 0, Link partnerships from small startups.  A lot of these are so automated that if I do respond I dont even get a response.  I’ve responded to many simply asking what is this about, I get 10 others just like you a week.  Can you tell me what exactly you want and what each of us benefit from it, how did you find me.  All normal questions, they almost always result in crickets, no response, maybe its time to implement a Billie for more snark.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.lastweekinaws.com/blog/i-hope-this-email-finds-you-before-i-do/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.lastweekinaws.com/wp-content/uploads/2026/01/header-1768364958717.jpg\" alt=\"I Hope This Email Finds You Before I Do — I Hope This Email Finds You Before I Do\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eI Hope This Email Finds You Before I Do\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI Hope This Email Finds You Before I Do\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLast Week in AWS \u0026middot; lastweekinaws.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis post was filled with real life, snark, entertainment, feelings.  I get a lot of these emails that claim they can change my SEO game if I give them 500, for a site making 0, Link partnerships from small startups.  A lot of these are so automated that if I do respond I dont even get a response.  I've responded to many simply asking what is this about, I get 10 others just like you a week.  Can you tell me what exactly you want and what each of us benefit from it, how did you find me.  All normal questions, they almost always result in crickets, no response, maybe its time to implement a Billie for more snark.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.lastweekinaws.com/blog/i-hope-this-email-finds-you-before-i-do/",
      "date_published": "2026-01-19T15:24:34Z",
      "date_modified": "2026-01-19T15:24:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-19/",
      "url": "https://waylonwalker.com/ping-19/",
      "title": "Ping 19",
      "content_html": "\u003cp\u003eWhat no one is talking about is that Deegs doesn’t get the red plate without\nAnstie on the ground.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/6cf67bcf-5111-4ee0-892e-0407eb1acdbe.mp4\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/6cf67bcf-5111-4ee0-892e-0407eb1acdbe.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/6cf67bcf-5111-4ee0-892e-0407eb1acdbe.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nWhat no one is talking about is that Deegs doesn't get the red plate without\nAnstie on the ground.\n\n![](https://dropper.waylonwalker.com/file/6cf67bcf-5111-4ee0-892e-0407eb1acdbe.mp4)\n",
      "summary": "What no one is talking about is that Deegs doesn't get the red plate without Anstie on the ground.",
      "date_published": "2026-01-18T14:07:57Z",
      "date_modified": "2026-01-18T14:07:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping",
        "supercross"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/trobio-full2/",
      "url": "https://waylonwalker.com/shots/trobio-full2/",
      "title": "Trobio Full2",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/37a7b508-f5d5-49d7-a443-dc346fdae913.mp4\" class=\"glightbox-link\" aria-label=\"Trobio Full2\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/37a7b508-f5d5-49d7-a443-dc346fdae913.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/37a7b508-f5d5-49d7-a443-dc346fdae913.mp4\" type=\"video/mp4\"\u003eTrobio Full2\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTrobio Full2\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Trobio Full2](https://dropper.waylonwalker.com/file/37a7b508-f5d5-49d7-a443-dc346fdae913.mp4)\n\n\u003e Trobio Full2\n",
      "summary": "Trobio Full2",
      "image": "https://dropper.waylonwalker.com/file/37a7b508-f5d5-49d7-a443-dc346fdae913.mp4",
      "date_published": "2026-01-17T12:20:57Z",
      "date_modified": "2026-01-17T12:20:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-18/",
      "url": "https://waylonwalker.com/ping-18/",
      "title": "What is that",
      "content_html": "\u003cp\u003eI was unironically asked what is that about my keeb today.  Followed by no way\nthat works, how would you type a, s, y, u, after showing, I go the “that’s\nweird” walk away.\u003c/p\u003e\n",
      "content_text": "\nI was unironically asked what is that about my keeb today.  Followed by no way\nthat works, how would you type a, s, y, u, after showing, I go the \"that's\nweird\" walk away.\n",
      "summary": "I was unironically asked what is that about my keeb today. Followed by no way that works, how would you type a, s, y, u, after showing, I go the \"that's...",
      "date_published": "2026-01-15T19:22:47Z",
      "date_modified": "2026-01-15T19:22:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/hornet-sitting/",
      "url": "https://waylonwalker.com/shots/hornet-sitting/",
      "title": "Hornet Sitting",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/81553691-15f4-4b5e-9b4f-92fcbacf6838.mp4\" class=\"glightbox-link\" aria-label=\"Hornet Sitting\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/81553691-15f4-4b5e-9b4f-92fcbacf6838.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/81553691-15f4-4b5e-9b4f-92fcbacf6838.mp4\" type=\"video/mp4\"\u003eHornet Sitting\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHornet Sitting\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Hornet Sitting](https://dropper.waylonwalker.com/file/81553691-15f4-4b5e-9b4f-92fcbacf6838.mp4)\n\n\u003e Hornet Sitting\n",
      "summary": "Hornet Sitting",
      "image": "https://dropper.waylonwalker.com/file/81553691-15f4-4b5e-9b4f-92fcbacf6838.mp4",
      "date_published": "2026-01-15T19:16:43Z",
      "date_modified": "2026-01-15T19:16:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/trobio-fight/",
      "url": "https://waylonwalker.com/shots/trobio-fight/",
      "title": "Trobio Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/ff44918f-3c72-4377-94d2-91021033e357.mp4\" class=\"glightbox-link\" aria-label=\"Trobio Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/ff44918f-3c72-4377-94d2-91021033e357.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/ff44918f-3c72-4377-94d2-91021033e357.mp4\" type=\"video/mp4\"\u003eTrobio Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTrobio Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Trobio Fight](https://dropper.waylonwalker.com/file/ff44918f-3c72-4377-94d2-91021033e357.mp4)\n\n\u003e Trobio Fight\n",
      "summary": "Trobio Fight",
      "image": "https://dropper.waylonwalker.com/file/ff44918f-3c72-4377-94d2-91021033e357.mp4",
      "date_published": "2026-01-15T19:12:25Z",
      "date_modified": "2026-01-15T19:12:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "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\" aria-label=\"Trobio Full\"\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\u003cfigcaption\u003e\u003cp\u003eTrobio Full\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\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": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/git/",
      "url": "https://waylonwalker.com/git/",
      "title": "📝 Git Notes",
      "content_html": "\u003ch2 id=\"see-old-revisions-of-one-file\"\u003eSee old revisions of one file \u003ca href=\"#see-old-revisions-of-one-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log --oneline -- \u0026lt;file\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit log -n \u003cspan class=\"m\"\u003e2\u003c/span\u003e --oneline -- \u0026lt;file\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"checkout-an-old-revision-of-a-file\"\u003eCheckout an old revision of a file \u003ca href=\"#checkout-an-old-revision-of-a-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout \u0026lt;commit\u0026gt; -- path/to/file\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"fuzzy-pick-a-file-and-check-out-an-old-revision\"\u003efuzzy pick a file and check out an old revision \u003ca href=\"#fuzzy-pick-a-file-and-check-out-an-old-revision\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/usr/bin/env bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eset\u003c/span\u003e -euo pipefail\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003e1\u003c/span\u003e\u003cspan class=\"k\"\u003e:-\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003egit ls-files \u003cspan class=\"p\"\u003e|\u003c/span\u003e fzf --prompt\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;select file \u0026gt; \u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e ! git rev-parse --is-inside-work-tree \u0026gt;/dev/null 2\u0026gt;\u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e1\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Not a git repository.\u0026#34;\u003c/span\u003e \u0026gt;\u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"m\"\u003e2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e ! git ls-files --error-unmatch -- \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u0026gt;/dev/null 2\u0026gt;\u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e1\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;File is not tracked by git: \u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u0026gt;\u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\u003cspan class=\"m\"\u003e2\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003echoice\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  git log --follow --pretty\u003cspan class=\"o\"\u003e=\u003c/span\u003eformat:\u003cspan class=\"s1\"\u003e\u0026#39;%h %ad %s\u0026#39;\u003c/span\u003e --date\u003cspan class=\"o\"\u003e=\u003c/span\u003eshort -- \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    fzf --ansi --no-sort --reverse \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --preview-window\u003cspan class=\"o\"\u003e=\u003c/span\u003edown:70% \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --prompt\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;checkout revision \u0026gt; \u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --preview \u003cspan class=\"s2\"\u003e\u0026#34;git show --color=always {1}^..{1} -- \u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#39; 2\u0026gt;/dev/null || git show --color=always {1} -- \u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003echoice\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecommit\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003eawk \u003cspan class=\"s1\"\u003e\u0026#39;{print $1}\u0026#39;\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u0026lt;\u0026lt;\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003echoice\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit checkout \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ecommit\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -- \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003efile\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## See old revisions of one file\n\n``` bash\ngit log --oneline -- \u003cfile\u003e\ngit log -n 2 --oneline -- \u003cfile\u003e\n```\n\n## Checkout an old revision of a file\n\n``` bash\ngit checkout \u003ccommit\u003e -- path/to/file\n```\n\n## fuzzy pick a file and check out an old revision\n\n``` bash\n#!/usr/bin/env bash\nset -euo pipefail\n\nfile=\"${1:-}\"\n\nif [[ -z \"${file}\" ]]; then\n  file=\"$(git ls-files | fzf --prompt=\"select file \u003e \")\" || exit 0\nfi\n\nif [[ -z \"${file}\" ]]; then\n  exit 0\nfi\n\nif ! git rev-parse --is-inside-work-tree \u003e/dev/null 2\u003e\u00261; then\n  echo \"Not a git repository.\" \u003e\u00262\n  exit 1\nfi\n\nif ! git ls-files --error-unmatch -- \"${file}\" \u003e/dev/null 2\u003e\u00261; then\n  echo \"File is not tracked by git: ${file}\" \u003e\u00262\n  exit 1\nfi\n\nchoice=\"$(\n  git log --follow --pretty=format:'%h %ad %s' --date=short -- \"${file}\" |\n    fzf --ansi --no-sort --reverse \\\n        --preview-window=down:70% \\\n        --prompt=\"checkout revision \u003e \" \\\n        --preview \"git show --color=always {1}^..{1} -- '${file}' 2\u003e/dev/null || git show --color=always {1} -- '${file}'\"\n)\"\n\nif [[ -z \"${choice}\" ]]; then\n  exit 0\nfi\n\ncommit=\"$(awk '{print $1}' \u003c\u003c\u003c\"${choice}\")\"\ngit checkout \"${commit}\" -- \"${file}\"\n```\n",
      "summary": "Waylon Walker's Git Notes",
      "date_published": "2026-01-15T09:05:21Z",
      "date_modified": "2026-01-15T09:05:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/heringbone-fingerboard/",
      "url": "https://waylonwalker.com/shots/heringbone-fingerboard/",
      "title": "Heringbone Fingerboard",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/1b7f257c-5193-4b74-b768-2fa4a7ccdec8.webp\" class=\"glightbox-link\" aria-label=\"Heringbone Fingerboard\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/1b7f257c-5193-4b74-b768-2fa4a7ccdec8.webp\" alt=\"Heringbone Fingerboard\"/ data-glightbox=\"description: Heringbone Fingerboard\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI just finished up my latest 6 ply wood fingerboard.  I used scraps of purple, blue, red, and gold from the first 5 boards I built to make this pattern.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Heringbone Fingerboard](https://dropper.waylonwalker.com/file/1b7f257c-5193-4b74-b768-2fa4a7ccdec8.webp)\n\n\u003e I just finished up my latest 6 ply wood fingerboard.  I used scraps of purple, blue, red, and gold from the first 5 boards I built to make this pattern.\n\n",
      "summary": "I just finished up my latest 6 ply wood fingerboard. I used scraps of purple, blue, red, and gold from the first 5 boards I built to make this pattern.",
      "image": "https://dropper.waylonwalker.com/file/1b7f257c-5193-4b74-b768-2fa4a7ccdec8.webp",
      "date_published": "2026-01-14T19:55:10Z",
      "date_modified": "2026-01-14T19:55:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/dont-trust-users-tokens/",
      "url": "https://waylonwalker.com/dont-trust-users-tokens/",
      "title": "Dont Trust Users Tokens",
      "content_html": "\u003cp\u003eUser states: Upon picking up an old project and trying to install pip says\n“cannot find a version to satisfy”\u003c/p\u003e\n\u003cp\u003eI’ve got this, I’ve had this a hundred times before it’s a python version, a\nrogue package, maybe a yank from the pinned deps.  I pop open the project get\nus on the same commit.  I get a different error, make a few updates and we are\ngood, except the user gets the same error from the start.\u003c/p\u003e\n\u003cp\u003eThey never saw the error I did, and my fix did not magically resolve their\nerror.  We circle all the things it could be for hours.  I consistently wipe my\nvenv, and recreate with ease, send them the commands I ran to no avail.\nSomething is up and I can’t put my finger on it.  We’ve checked all the things\nand inched as close as we can to running everything exactly the same.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOs\u003c/li\u003e\n\u003cli\u003epython version\u003c/li\u003e\n\u003cli\u003eNetwork vpn\u003c/li\u003e\n\u003cli\u003euv version\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNothing makes any sense.  Finally I throw in the towel, is it the artifact\nserver.  I forge a token and give him one to borrow.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBAM\u003c/strong\u003e it works, like magic.  The first sign of progress.  Then he mentions.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHuh that’s odd cause I just got mine this morning\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eFailing to mention this any earlier that getting a new token for a service and\nit completely borked it!  I get it though, the error was very oddly presented\nand not easy to see why\u003c/p\u003e\n\u003cp\u003eThere it was all along, looking back in the logs I see his redacted token going\nto the wrong registry. One that does not include our packages, everything makes\nsense now. The reason it couldn’t find a version to satisfy was not a python\nversion, os version, package conflict, it was that it couldn’t find a fucking\nversion of the thing to begin with.\u003c/p\u003e\n\u003cp\u003eAll this to say, don’t trust users tokens, save your time and just get fresh\nones with them.\u003c/p\u003e\n\u003cp\u003e\u003credacted\u003e if you read this it’s all cool, like I said it’s all part of the\njob, no harsh feelings, at least we got a good story out of it right!\u003c/redacted\u003e\u003c/p\u003e\n",
      "content_text": "\nUser states: Upon picking up an old project and trying to install pip says\n\"cannot find a version to satisfy\"\n\nI've got this, I've had this a hundred times before it's a python version, a\nrogue package, maybe a yank from the pinned deps.  I pop open the project get\nus on the same commit.  I get a different error, make a few updates and we are\ngood, except the user gets the same error from the start.\n\nThey never saw the error I did, and my fix did not magically resolve their\nerror.  We circle all the things it could be for hours.  I consistently wipe my\nvenv, and recreate with ease, send them the commands I ran to no avail.\nSomething is up and I can't put my finger on it.  We've checked all the things\nand inched as close as we can to running everything exactly the same.\n\n* Os\n* python version\n* Network vpn\n* uv version\n\nNothing makes any sense.  Finally I throw in the towel, is it the artifact\nserver.  I forge a token and give him one to borrow.\n\n**BAM** it works, like magic.  The first sign of progress.  Then he mentions.\n\n\u003e Huh that's odd cause I just got mine this morning\n\nFailing to mention this any earlier that getting a new token for a service and\nit completely borked it!  I get it though, the error was very oddly presented\nand not easy to see why\n\nThere it was all along, looking back in the logs I see his redacted token going\nto the wrong registry. One that does not include our packages, everything makes\nsense now. The reason it couldn't find a version to satisfy was not a python\nversion, os version, package conflict, it was that it couldn't find a fucking\nversion of the thing to begin with.\n\nAll this to say, don't trust users tokens, save your time and just get fresh\nones with them.\n\n\u003cRedacted\u003e if you read this it's all cool, like I said it's all part of the\njob, no harsh feelings, at least we got a good story out of it right!\n",
      "summary": "User states: Upon picking up an old project and trying to install pip says \"cannot find a version to satisfy\"",
      "date_published": "2026-01-14T19:49:43Z",
      "date_modified": "2026-01-14T19:49:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/dbreunig-whenwords/",
      "url": "https://waylonwalker.com/dbreunig-whenwords/",
      "title": "⭐ dbreunig whenwords",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/dbreunig\" 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\"\u003edbreunig\u003c/a\u003e and their project \u003ca href=\"https://github.com/dbreunig/whenwords\" 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\"\u003ewhenwords\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA relative time formatting library, with no code.\u003c/p\u003e\n",
      "content_text": "\nCheck out [dbreunig](https://github.com/dbreunig) and their project [whenwords](https://github.com/dbreunig/whenwords).\n\nA relative time formatting library, with no code.\n",
      "summary": "Check out dbreunig and their project whenwords.",
      "date_published": "2026-01-14T17:08:20Z",
      "date_modified": "2026-01-14T17:08:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-912/",
      "url": "https://waylonwalker.com/thought-912/",
      "title": "💭 Hollow Knight: Silksong by Ceen in 54:55 - Awesome Games Done ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"M9Li3gm4JCI\" title=\"Hollow Knight: Silksong by Ceen in 54:55 - Awesome Games Done Quick 2026\" playlabel=\"Play: Hollow Knight: Silksong by Ceen in 54:55 - Awesome Games Done Quick 2026\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat a goat, speedrunning silksong at a competitive pace, live, with live audience, while co hosting, and raising $2M for Prevent Cancer Foundation.  CEEN moves in ways that do not compute with my brain, everything looks so simple, things that take me so long are done in a few swipes.  Watching this it really make silkspear look OP, this thing does so much damage if you never take damage and can use it continuously without needing silk for healing.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"M9Li3gm4JCI\" title=\"Hollow Knight: Silksong by Ceen in 54:55 - Awesome Games Done Quick 2026\" playlabel=\"Play: Hollow Knight: Silksong by Ceen in 54:55 - Awesome Games Done Quick 2026\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWhat a goat, speedrunning silksong at a competitive pace, live, with live audience, while co hosting, and raising $2M for Prevent Cancer Foundation.  CEEN moves in ways that do not compute with my brain, everything looks so simple, things that take me so long are done in a few swipes.  Watching this it really make silkspear look OP, this thing does so much damage if you never take damage and can use it continuously without needing silk for healing.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=M9Li3gm4JCI",
      "date_published": "2026-01-14T02:35:01Z",
      "date_modified": "2026-01-14T02:35:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "silksong",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-910/",
      "url": "https://waylonwalker.com/thought-910/",
      "title": "💭 \"I shipped code I don't understand and I bet you have too\" – J...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"eIoohUmYpGI\" title=\"The Infinite Software Crisis – Jake Nations, Netflix\" playlabel=\"Play: The Infinite Software Crisis – Jake Nations, Netflix\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolute banger of a conference talk, saving to come back with more notes later.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"eIoohUmYpGI\" title=\"The Infinite Software Crisis – Jake Nations, Netflix\" playlabel=\"Play: The Infinite Software Crisis – Jake Nations, Netflix\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAbsolute banger of a conference talk, saving to come back with more notes later.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=eIoohUmYpGI",
      "date_published": "2026-01-14T02:15:41Z",
      "date_modified": "2026-01-14T02:15:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "later",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/high-halls-gauntlet-ending/",
      "url": "https://waylonwalker.com/shots/high-halls-gauntlet-ending/",
      "title": "High Halls Gauntlet Ending",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/a74b0494-341b-4194-955c-be2a56931d77.mp4\" class=\"glightbox-link\" aria-label=\"High Halls Gauntlet Ending\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/a74b0494-341b-4194-955c-be2a56931d77.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/a74b0494-341b-4194-955c-be2a56931d77.mp4\" type=\"video/mp4\"\u003eHigh Halls Gauntlet Ending\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHigh Halls Gauntlet Ending\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![High Halls Gauntlet Ending](https://dropper.waylonwalker.com/file/a74b0494-341b-4194-955c-be2a56931d77.mp4)\n\n\u003e High Halls Gauntlet Ending\n",
      "summary": "High Halls Gauntlet Ending",
      "image": "https://dropper.waylonwalker.com/file/a74b0494-341b-4194-955c-be2a56931d77.mp4",
      "date_published": "2026-01-13T18:49:59Z",
      "date_modified": "2026-01-13T18:49:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/conductors-melody/",
      "url": "https://waylonwalker.com/shots/conductors-melody/",
      "title": "Conductors Melody",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/91c794cb-fd46-4354-aae9-a15ef2426ea0.mp4\" class=\"glightbox-link\" aria-label=\"Conductors Melody\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/91c794cb-fd46-4354-aae9-a15ef2426ea0.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/91c794cb-fd46-4354-aae9-a15ef2426ea0.mp4\" type=\"video/mp4\"\u003eConductors Melody\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eConductors Melody\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Conductors Melody](https://dropper.waylonwalker.com/file/91c794cb-fd46-4354-aae9-a15ef2426ea0.mp4)\n\n\u003e Conductors Melody\n",
      "summary": "Conductors Melody",
      "image": "https://dropper.waylonwalker.com/file/91c794cb-fd46-4354-aae9-a15ef2426ea0.mp4",
      "date_published": "2026-01-13T18:43:43Z",
      "date_modified": "2026-01-13T18:43:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/top-spool/",
      "url": "https://waylonwalker.com/shots/top-spool/",
      "title": "Top Spool",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/ff9c858b-0829-4e50-a933-cdc971e601af.mp4\" class=\"glightbox-link\" aria-label=\"Top Spool\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/ff9c858b-0829-4e50-a933-cdc971e601af.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/ff9c858b-0829-4e50-a933-cdc971e601af.mp4\" type=\"video/mp4\"\u003eTop Spool\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTop Spool\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Top Spool](https://dropper.waylonwalker.com/file/ff9c858b-0829-4e50-a933-cdc971e601af.mp4)\n\n\u003e Top Spool\n",
      "summary": "Top Spool",
      "image": "https://dropper.waylonwalker.com/file/ff9c858b-0829-4e50-a933-cdc971e601af.mp4",
      "date_published": "2026-01-13T18:42:48Z",
      "date_modified": "2026-01-13T18:42:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/opencode-variants/",
      "url": "https://waylonwalker.com/opencode-variants/",
      "title": "opencode variants",
      "content_html": "\u003cp\u003eOpencode is changing on the daily right now, today I noticed the word \u003ccode\u003elow\u003c/code\u003e pop\nup in Orange text in my opencode window.  Looking into this they are exposing\n\u003ca href=\"https://opencode.ai/docs/models/#variants\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/opencode.ai.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/opencode.ai.ico\" class=\"has-avatar  has-avatar-before\"\u003evariants\u003c/a\u003e to the user.  This allows\nyou to change between fast or slow and thinking, the later taking more time to\nprepare before doing an action.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/0b6bfe5e-41b0-4e44-8c5a-ff88739a770e.mp4\" class=\"glightbox-link\" aria-label=\"Swapping Variants in opencode\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/0b6bfe5e-41b0-4e44-8c5a-ff88739a770e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/0b6bfe5e-41b0-4e44-8c5a-ff88739a770e.mp4\" type=\"video/mp4\"\u003eSwapping Variants in opencode\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIt looks like this toggle may have been here for awhile and I’m just now\ndiscovering it. Potentially because its a new feature of the free Zen provider.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVariants\nMany models support multiple variants with different configurations. OpenCode ships with built-in default variants for popular providers.\u003c/p\u003e\n\u003cp\u003eBuilt-in variants\nOpenCode ships with default variants for many providers:\u003c/p\u003e\n\u003cp\u003eAnthropic:\u003c/p\u003e\n\u003cp\u003ehigh - High thinking budget (default)\nmax - Maximum thinking budget\nOpenAI:\u003c/p\u003e\n\u003cp\u003eVaries by model but roughly:\u003c/p\u003e\n\u003cp\u003enone - No reasoning\nminimal - Minimal reasoning effort\nlow - Low reasoning effort\nmedium - Medium reasoning effort\nhigh - High reasoning effort\nxhigh - Extra high reasoning effort\nGoogle:\u003c/p\u003e\n\u003cp\u003elow - Lower effort/token budget\nhigh - Higher effort/token budget\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nOpencode is changing on the daily right now, today I noticed the word `low` pop\nup in Orange text in my opencode window.  Looking into this they are exposing\n[variants](https://opencode.ai/docs/models/#variants) to the user.  This allows\nyou to change between fast or slow and thinking, the later taking more time to\nprepare before doing an action.\n\n![Swapping Variants in opencode](https://dropper.waylonwalker.com/file/0b6bfe5e-41b0-4e44-8c5a-ff88739a770e.mp4)\n\nIt looks like this toggle may have been here for awhile and I'm just now\ndiscovering it. Potentially because its a new feature of the free Zen provider.\n\n\u003e Variants\nMany models support multiple variants with different configurations. OpenCode ships with built-in default variants for popular providers.\n\u003e \n\u003e Built-in variants\n\u003e OpenCode ships with default variants for many providers:\n\u003e \n\u003e Anthropic:\n\u003e \n\u003e high - High thinking budget (default)\n\u003e max - Maximum thinking budget\n\u003e OpenAI:\n\u003e \n\u003e Varies by model but roughly:\n\u003e \n\u003e none - No reasoning\n\u003e minimal - Minimal reasoning effort\n\u003e low - Low reasoning effort\n\u003e medium - Medium reasoning effort\n\u003e high - High reasoning effort\n\u003e xhigh - Extra high reasoning effort\n\u003e Google:\n\u003e \n\u003e low - Lower effort/token budget\n\u003e high - Higher effort/token budget\n",
      "summary": "Opencode is changing on the daily right now, today I noticed the word pop up in Orange text in my opencode window. Looking into this they are exposing...",
      "date_published": "2026-01-13T08:53:36Z",
      "date_modified": "2026-01-13T08:53:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "opencode"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-909/",
      "url": "https://waylonwalker.com/thought-909/",
      "title": "💭 Reflections on 13 years and 1,000 posts of writing on my blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hamy.xyz/blog/2026-01_1000-blog-posts\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hamy.xyz.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hamy.xyz.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReflections on 13 years and 1,000 posts of writing on my blog - HAMY\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehamy.xyz\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe answer is I do it habitually. If there’s a big enough idea I’ve had floating around in my head and I think others might find it useful / interesting then I usually think it’s worth logging it somewhere. If I don’t, I’ll likely just keep thinking about it so might as well get it out of my head and on the internet where people can find it.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://hammy.xyz\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hammy.xyz.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hammy.xyz.png\" class=\"has-avatar  has-avatar-before\"\u003ehammy\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis is how you do it.  If you want to do something, you need to make it a habit. Something you crave, something you need.  I need to write my ideas down in this blog, it helps me index ideas for later, but more importantly it helps me flesh them out and think through real things.\u003c/p\u003e\n\u003cp\u003eCongrats on 1k, your site is awesome \u003ca href=\"https://hammy.xyz\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hammy.xyz.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hammy.xyz.png\" class=\"has-avatar  has-avatar-before\"\u003eHammy\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hamy.xyz/blog/2026-01_1000-blog-posts\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReflections on 13 years and 1,000 posts of writing on my blog - HAMY\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehamy.xyz\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e The answer is I do it habitually. If there's a big enough idea I've had floating around in my head and I think others might find it useful / interesting then I usually think it's worth logging it somewhere. If I don't, I'll likely just keep thinking about it so might as well get it out of my head and on the internet where people can find it.\n\u003e - [hammy](https://hammy.xyz)\n\nThis is how you do it.  If you want to do something, you need to make it a habit. Something you crave, something you need.  I need to write my ideas down in this blog, it helps me index ideas for later, but more importantly it helps me flesh them out and think through real things.\n\nCongrats on 1k, your site is awesome [Hammy](https://hammy.xyz)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hamy.xyz/blog/2026-01_1000-blog-posts",
      "date_published": "2026-01-13T03:15:54Z",
      "date_modified": "2026-01-13T03:15:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-17/",
      "url": "https://waylonwalker.com/ping-17/",
      "title": "Ping 17",
      "content_html": "\u003cp\u003eI’m not sure if its good to keep issues and plans in the repo long term, but\nI’m going to give it a shot.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eread @pages/issues/issue-1.md create a plan to fix the issue, then write your\nplan to fix in @pages/plans/fix-issue-1.md\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nI'm not sure if its good to keep issues and plans in the repo long term, but\nI'm going to give it a shot.\n\n\u003e read @pages/issues/issue-1.md create a plan to fix the issue, then write your\n\u003e plan to fix in @pages/plans/fix-issue-1.md\n",
      "summary": "I'm not sure if its good to keep issues and plans in the repo long term, but I'm going to give it a shot.",
      "date_published": "2026-01-12T12:01:16Z",
      "date_modified": "2026-01-12T12:01:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-908/",
      "url": "https://waylonwalker.com/thought-908/",
      "title": "💭 Don't fall into the anti-AI hype",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Jan/11/dont-fall-into-the-anti-ai-hype/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDon’t fall into the anti-AI hype\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI\u0026#39;m glad someone was brave enough to say this. There is a lot of anti-AI sentiment in the software development community these days. Much of it is justified, but if …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eNever believe in absolutes, see what I did there.  The hype bros will take you to the extremes, ai will take your jobs in six months or be burned to the ground in six months.  How about its useful now and will be more useful in six months.  If you turned off the hype bro feed for six months you would probably be fine, in fact you would probably be better off for not capturing so much noise along the way.  AI has gone the way of next js framework, it churns fast, hype bros are always an expert that know exactly whats best for everyone.  It changes fast, what was the best last week might be dead next week.  In fact getting to know what works well for you and knowing that tool really well for a longer period will take you farther.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Jan/11/dont-fall-into-the-anti-ai-hype/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDon’t fall into the anti-AI hype\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI\u0026#39;m glad someone was brave enough to say this. There is a lot of anti-AI sentiment in the software development community these days. Much of it is justified, but if …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNever believe in absolutes, see what I did there.  The hype bros will take you to the extremes, ai will take your jobs in six months or be burned to the ground in six months.  How about its useful now and will be more useful in six months.  If you turned off the hype bro feed for six months you would probably be fine, in fact you would probably be better off for not capturing so much noise along the way.  AI has gone the way of next js framework, it churns fast, hype bros are always an expert that know exactly whats best for everyone.  It changes fast, what was the best last week might be dead next week.  In fact getting to know what works well for you and knowing that tool really well for a longer period will take you farther.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2026/Jan/11/dont-fall-into-the-anti-ai-hype/#atom-everything",
      "date_published": "2026-01-12T03:03:25Z",
      "date_modified": "2026-01-12T03:03:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-907/",
      "url": "https://waylonwalker.com/thought-907/",
      "title": "💭 Salesforces mistake - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"tBWenRZIgdg\" title=\"Salesforces mistake\" playlabel=\"Play: Salesforces mistake\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eSalesforce gets pwnd by the ai hype bros and killed its reputation with employees, letting them know where they truely stand with them.  4k people sounds like a lot, its probably a big chunk of savings, but was it worth the loss of reputation?  There must be a better way to give this a trial run that lets them understand this before disrupting the lives of real people right???\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"tBWenRZIgdg\" title=\"Salesforces mistake\" playlabel=\"Play: Salesforces mistake\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nSalesforce gets pwnd by the ai hype bros and killed its reputation with employees, letting them know where they truely stand with them.  4k people sounds like a lot, its probably a big chunk of savings, but was it worth the loss of reputation?  There must be a better way to give this a trial run that lets them understand this before disrupting the lives of real people right???\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/tBWenRZIgdg",
      "date_published": "2026-01-12T02:52:55Z",
      "date_modified": "2026-01-12T02:52:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/broodmother-eye/",
      "url": "https://waylonwalker.com/shots/broodmother-eye/",
      "title": "Broodmother Eye",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/89b14b31-6ae8-42c4-ab1b-fc1d354ee27c.mp4\" class=\"glightbox-link\" aria-label=\"Broodmother Eye\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/89b14b31-6ae8-42c4-ab1b-fc1d354ee27c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/89b14b31-6ae8-42c4-ab1b-fc1d354ee27c.mp4\" type=\"video/mp4\"\u003eBroodmother Eye\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBroodmother Eye\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Broodmother Eye](https://dropper.waylonwalker.com/file/89b14b31-6ae8-42c4-ab1b-fc1d354ee27c.mp4)\n\n\u003e Broodmother Eye\n",
      "summary": "Broodmother Eye",
      "image": "https://dropper.waylonwalker.com/file/89b14b31-6ae8-42c4-ab1b-fc1d354ee27c.mp4",
      "date_published": "2026-01-11T18:03:37Z",
      "date_modified": "2026-01-11T18:03:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/big-flea-1/",
      "url": "https://waylonwalker.com/shots/big-flea-1/",
      "title": "Big Flea 1",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/d7578560-e7ae-4a0c-9896-a4db9d919b23.mp4\" class=\"glightbox-link\" aria-label=\"Big Flea 1\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/d7578560-e7ae-4a0c-9896-a4db9d919b23.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/d7578560-e7ae-4a0c-9896-a4db9d919b23.mp4\" type=\"video/mp4\"\u003eBig Flea 1\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBig Flea 1\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Big Flea 1](https://dropper.waylonwalker.com/file/d7578560-e7ae-4a0c-9896-a4db9d919b23.mp4)\n\n\u003e Big Flea 1\n",
      "summary": "Big Flea 1",
      "image": "https://dropper.waylonwalker.com/file/d7578560-e7ae-4a0c-9896-a4db9d919b23.mp4",
      "date_published": "2026-01-11T18:01:55Z",
      "date_modified": "2026-01-11T18:01:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cogfly/",
      "url": "https://waylonwalker.com/shots/cogfly/",
      "title": "Cogfly",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/3fefcd31-128c-47bb-a8b1-b601cfd54536.mp4\" class=\"glightbox-link\" aria-label=\"Cogfly\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/3fefcd31-128c-47bb-a8b1-b601cfd54536.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/3fefcd31-128c-47bb-a8b1-b601cfd54536.mp4\" type=\"video/mp4\"\u003eCogfly\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCogfly\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Cogfly](https://dropper.waylonwalker.com/file/3fefcd31-128c-47bb-a8b1-b601cfd54536.mp4)\n\n\u003e Cogfly\n",
      "summary": "Cogfly",
      "image": "https://dropper.waylonwalker.com/file/3fefcd31-128c-47bb-a8b1-b601cfd54536.mp4",
      "date_published": "2026-01-11T18:00:35Z",
      "date_modified": "2026-01-11T18:00:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/beast-crest/",
      "url": "https://waylonwalker.com/shots/beast-crest/",
      "title": "Beast Crest",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/9a406fa1-d69d-4fd9-9ff1-15c84661d97d.mp4\" class=\"glightbox-link\" aria-label=\"Beast Crest\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/9a406fa1-d69d-4fd9-9ff1-15c84661d97d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/9a406fa1-d69d-4fd9-9ff1-15c84661d97d.mp4\" type=\"video/mp4\"\u003eBeast Crest\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBeast Crest\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Beast Crest](https://dropper.waylonwalker.com/file/9a406fa1-d69d-4fd9-9ff1-15c84661d97d.mp4)\n\n\u003e Beast Crest\n",
      "summary": "Beast Crest",
      "image": "https://dropper.waylonwalker.com/file/9a406fa1-d69d-4fd9-9ff1-15c84661d97d.mp4",
      "date_published": "2026-01-11T17:59:06Z",
      "date_modified": "2026-01-11T17:59:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/clawline/",
      "url": "https://waylonwalker.com/shots/clawline/",
      "title": "Clawline",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/73e59874-cc30-4330-bb5a-c81a93310dcd.mp4\" class=\"glightbox-link\" aria-label=\"Clawline\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/73e59874-cc30-4330-bb5a-c81a93310dcd.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/73e59874-cc30-4330-bb5a-c81a93310dcd.mp4\" type=\"video/mp4\"\u003eClawline\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eClawline\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Clawline](https://dropper.waylonwalker.com/file/73e59874-cc30-4330-bb5a-c81a93310dcd.mp4)\n\n\u003e Clawline\n",
      "summary": "Clawline",
      "image": "https://dropper.waylonwalker.com/file/73e59874-cc30-4330-bb5a-c81a93310dcd.mp4",
      "date_published": "2026-01-11T17:57:57Z",
      "date_modified": "2026-01-11T17:57:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "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 \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e.\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=\"a-hreftechbrophobic-classwikilink-data-titletechbrophobic-data-descriptioni-just-heard-someone-drop-the-this-term-and-it-kinda-fits-a-lot-of-shit-on-the-internet-right-now-arguing-that-its-ok-to-question-ai-its-ok-to-like-it-its-data-date2025-11-09techbrophobica\"\u003e\u003ca href=\"/techbrophobic/\" class=\"wikilink\" data-title=\"Techbrophobic\" data-description=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\" data-date=\"2025-11-09\" data-preview=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\"\u003eTechbrophobic\u003c/a\u003e \u003ca href=\"#a-hreftechbrophobic-classwikilink-data-titletechbrophobic-data-descriptioni-just-heard-someone-drop-the-this-term-and-it-kinda-fits-a-lot-of-shit-on-the-internet-right-now-arguing-that-its-ok-to-question-ai-its-ok-to-like-it-its-data-date2025-11-09techbrophobica\" 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 \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e.\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## \u003ca href=\"/techbrophobic/\" class=\"wikilink\" data-title=\"Techbrophobic\" data-description=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\" data-date=\"2025-11-09\"\u003eTechbrophobic\u003c/a\u003e\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": [
        "ai",
        "llm",
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-906/",
      "url": "https://waylonwalker.com/thought-906/",
      "title": "💭 Diffs, from Pierre",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://diffs.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://diffs.com/diffs-brand/opengraph-image.png\" alt=\"Diffs, from Pierre — @pierre/diffs is an open source diff and code rendering library. It\u0026#39;s built on Shiki for syntax highlighting and theming, is super customizable, and comes packed with features.\" loading=\"lazy\"/ data-glightbox=\"description: Diffs, from Pierre — @pierre/diffs is an open source diff and code rendering library. It\u0026#39;s built on Shiki for syntax highlighting and theming, is super customizable, and comes packed with features.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDiffs, from Pierre\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e@pierre/diffs is an open source diff and code rendering library. It\u0026#39;s built on Shiki for syntax highlighting and theming, is super customizable, and comes packed with features.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ediffs.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis looks like a really nice and performant diffing library that supports vanilla and react, with a lot of options.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://diffs.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://diffs.com/diffs-brand/opengraph-image.png\" alt=\"Diffs, from Pierre — @pierre/diffs is an open source diff and code rendering library. It\u0026#39;s built on Shiki for syntax highlighting and theming, is super customizable, and comes packed with features.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDiffs, from Pierre\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e@pierre/diffs is an open source diff and code rendering library. It\u0026#39;s built on Shiki for syntax highlighting and theming, is super customizable, and comes packed with features.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ediffs.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis looks like a really nice and performant diffing library that supports vanilla and react, with a lot of options.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://diffs.com/",
      "date_published": "2026-01-10T23:28:59Z",
      "date_modified": "2026-01-10T23:28:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/portajohn-progress-01-10-2026/",
      "url": "https://waylonwalker.com/shots/portajohn-progress-01-10-2026/",
      "title": "Portajohn Progress 01 10 2026",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/a6e31df0-b278-457c-9acd-f8ba81afc12b.webp\" class=\"glightbox-link\" aria-label=\"portajohn progress 01 10 2026\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/a6e31df0-b278-457c-9acd-f8ba81afc12b.webp\" alt=\"portajohn progress 01 10 2026\"/ data-glightbox=\"description: portajohn progress 01 10 2026\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA cutaway of the portajohn keyboard progress, it shows the internal trace from the bottom along with built in supports, reset button, power button, microcontroller cutout.  I’m getting very happy with the progress.  I really like the feel of the latest build, and can’t wait to have this solid build out there.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![portajohn progress 01 10 2026](https://dropper.waylonwalker.com/file/a6e31df0-b278-457c-9acd-f8ba81afc12b.webp)\n\n\u003e A cutaway of the portajohn keyboard progress, it shows the internal trace from the bottom along with built in supports, reset button, power button, microcontroller cutout.  I'm getting very happy with the progress.  I really like the feel of the latest build, and can't wait to have this solid build out there.\n\n",
      "summary": "A cutaway of the portajohn keyboard progress, it shows the internal trace from the bottom along with built in supports, reset button, power button, microcontroller cutout. I'm getting very happy with the progress. I really like the feel of the latest build, and can't wait to have this solid build out there.",
      "image": "https://dropper.waylonwalker.com/file/a6e31df0-b278-457c-9acd-f8ba81afc12b.webp",
      "date_published": "2026-01-10T18:58:03Z",
      "date_modified": "2026-01-10T18:58:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-905/",
      "url": "https://waylonwalker.com/thought-905/",
      "title": "💭 Oxide and Friends 1/5/2026 -- Predictions 2026!! - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"lVDhQMiAbR8\" title=\"✂️ Job of typing code into a computer in 6 years\" playlabel=\"Play: ✂️ Job of typing code into a computer in 6 years\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI thought this was an interesting take from Simon.  I’ve been hearing him consistently say there will be more demand for software engineering in the future.  More companies will have the ability and need to deal with software applications, but fewer of us will be hand editing any code.  I thought this was an interesting interaction in the clip.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUh Simon, what do you got for us?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI’ve just got the one. I think the act\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eof the the the job of being paid money to type code into a computer Yeah.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003ewill go the same way as punching punch cards.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eOkay.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI do I think in\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003esix years time I do not think it will anyone will be paid to 80:56\njust do the thing where you type the code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJust type the code. Okay.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI\nthink software engineering will still be an enormous career. I just think the\nsoftware engineers won’t be spending multiple hours of their day in a text\neditor typing out syntax. 81:09\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt will look like punching cards. I think\nso. Yeah.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYeah. Interesting. In uh in six years. Um and but software\nengineering still very much exists.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI believe so. I I hope so. [laughter] I\nvery much hope so because I think\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003ethe um the challenge of being a software\n81:23 engineer is not remembering\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003ehow if what what if what for loops look\nlike. It is understanding what computers can do and how to turn fuzzy human\nrequirements into actual like working software. And that’s that’s what we’re\nfor. And I think we’ll still be doing that just a lot more of it in a lot more\nambitious scale.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAnd then Okay. Do you Does the software engineer though\ndeals with code? I mean they I mean the code is being written.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI think\nthey probably look at it occasionally.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eOkay. Only occasionally a little\nbit. So I met 81:53\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWho debugs it?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUm I I hate to say it, the agents\ndebug it themselves.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eOkay. Who debugs your device driver that either works\nor doesn’t? I like\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eworking on this programming language like I’m doing my\nown codegen and like\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cblockquote\u003e\n\u003cp\u003eclaude is happy to pull out GDB and just like\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"lVDhQMiAbR8\" title=\"✂️ Job of typing code into a computer in 6 years\" playlabel=\"Play: ✂️ Job of typing code into a computer in 6 years\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI thought this was an interesting take from Simon.  I've been hearing him consistently say there will be more demand for software engineering in the future.  More companies will have the ability and need to deal with software applications, but fewer of us will be hand editing any code.  I thought this was an interesting interaction in the clip.\n\n\u003e Uh Simon, what do you got for us? \n\n\u003e I've just got the one. I think the act\n\n\n\u003e of the the the job of being paid money to type code into a computer Yeah.\n\n\n\u003e will go the same way as punching punch cards. \n\n\u003e Okay. \n\n\u003e I do I think in\n\n\n\u003e six years time I do not think it will anyone will be paid to 80:56\njust do the thing where you type the code. \n\n\u003e Just type the code. Okay. \n\n\u003e I\nthink software engineering will still be an enormous career. I just think the\nsoftware engineers won't be spending multiple hours of their day in a text\neditor typing out syntax. 81:09 \n\n\u003e It will look like punching cards. I think\nso. Yeah. \n\n\u003e Yeah. Interesting. In uh in six years. Um and but software\nengineering still very much exists. \n\n\u003e I believe so. I I hope so. [laughter] I\nvery much hope so because I think \n\n\u003e the um the challenge of being a software\n81:23 engineer is not remembering \n\n\u003e how if what what if what for loops look\nlike. It is understanding what computers can do and how to turn fuzzy human\nrequirements into actual like working software. And that's that's what we're\nfor. And I think we'll still be doing that just a lot more of it in a lot more\nambitious scale. \n\n\u003e And then Okay. Do you Does the software engineer though\ndeals with code? I mean they I mean the code is being written. \n\n\u003e I think\nthey probably look at it occasionally. \n\n\u003e Okay. Only occasionally a little\nbit. So I met 81:53 \n\n\u003e Who debugs it? \n\n\u003e Um I I hate to say it, the agents\ndebug it themselves. \n\n\u003e Okay. Who debugs your device driver that either works\nor doesn't? I like \n\n\u003e working on this programming language like I'm doing my\nown codegen and like \n\n\u003e claude is happy to pull out GDB and just like\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/clip/UgkxKSVMasWf0UpGaRVRqeBmn9C5Oh1syH2Q",
      "date_published": "2026-01-09T21:41:43Z",
      "date_modified": "2026-01-09T21:41:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/opencode-init-prompt/",
      "url": "https://waylonwalker.com/opencode-init-prompt/",
      "title": "opencode init prompt",
      "content_html": "\u003cp\u003eThis is opencode’s init prompt.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePlease analyze this codebase and create an AGENTS.md file containing:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e1.\u003c/span\u003e Build/lint/test commands - especially for running a single test\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e2.\u003c/span\u003e Code style guidelines including imports, formatting, types, naming conventions, error handling, etc.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe file you create will be given to agentic coding agents (such as yourself) that operate in this repository. Make it about 150 lines long.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIf there are Cursor rules (in .cursor/rules/ or .cursorrules) or Copilot rules (in .github/copilot-instructions.md), make sure to include them.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIf there\u0026#39;s already an AGENTS.md, improve it if it\u0026#39;s located in \u0026lt;dir\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\nThis is opencode's init prompt.\n\n``` markdown\nPlease analyze this codebase and create an AGENTS.md file containing:\n1. Build/lint/test commands - especially for running a single test\n2. Code style guidelines including imports, formatting, types, naming conventions, error handling, etc.\nThe file you create will be given to agentic coding agents (such as yourself) that operate in this repository. Make it about 150 lines long.\nIf there are Cursor rules (in .cursor/rules/ or .cursorrules) or Copilot rules (in .github/copilot-instructions.md), make sure to include them.\nIf there's already an AGENTS.md, improve it if it's located in \u003cdir\u003e\n```\n",
      "summary": "This is opencode's init prompt.",
      "date_published": "2026-01-09T13:32:12Z",
      "date_modified": "2026-01-09T13:32:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/og-sample/",
      "url": "https://waylonwalker.com/og-sample/",
      "title": "Og-Sample",
      "content_html": "\u003cp\u003eI’m making an effort to make my \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e images better yet again, I’m going for that\nnext 10% better.  I really like my og images, but there are some title sizes\nthat overflow.  This page is a page to help debug.  How I make these og images\nis for another day.\u003c/p\u003e\n\u003ch2 id=\"script\"\u003eScript \u003ca href=\"#script\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use my own static site generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e.  I can use it to generate a\nlist of posts wrapped in their og image.  I use itertools to do a groupby so\nthat I can do roughly every 5 characters larger, and see a wide variety of\nsizes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eitertools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elens\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;length\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;title\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;slug\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eslug\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elens_sorted\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003esorted\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elens\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;length\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003egroups\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eg\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elens_sorted\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;length\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e//\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eg\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eg\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003egroups\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e()]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eogs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;[![\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;slug\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4)](https://waylonwalker.com/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;slug\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e/og/)\u0026#39;\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eposts\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eogs\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"og-sample\"\u003eOG-Sample \u003ca href=\"#og-sample\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/sample/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/sample/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"sample\"/ data-glightbox=\"description: sample\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/kedro/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/kedro/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Kedro\"/ data-glightbox=\"description: Kedro\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/weeknote-0/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/weeknote-0/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Weeknote 0\"/ data-glightbox=\"description: Weeknote 0\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/upcoming-streams/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/upcoming-streams/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Upcoming Stream\"/ data-glightbox=\"description: Upcoming Stream\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/codeit-bro-interview/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/codeit-bro-interview/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Codeit Bro Interview\"/ data-glightbox=\"description: Codeit Bro Interview\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/doomlab7-homelab-argocd/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/doomlab7-homelab-argocd/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"⭐ Doomlab7 homelab-argocd\"/ data-glightbox=\"description: ⭐ Doomlab7 homelab-argocd\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/heathdbrown-python-code-tips/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/heathdbrown-python-code-tips/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"⭐ heathdbrown python_code_tips\"/ data-glightbox=\"description: ⭐ heathdbrown python_code_tips\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/making-good-documentation-in-python/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/making-good-documentation-in-python/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Making good documentation in python\"/ data-glightbox=\"description: Making good documentation in python\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/s3-datascience/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/s3-datascience/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"What DataScientists Should Know About S3\"/ data-glightbox=\"description: What DataScientists Should Know About S3\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/nvim-treesitter-nvim-treesitter-textobjects/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/nvim-treesitter-nvim-treesitter-textobjects/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"⭐ nvim-treesitter nvim-treesitter-textobjects\"/ data-glightbox=\"description: ⭐ nvim-treesitter nvim-treesitter-textobjects\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/dataengineerone-kedro-streaming-twitter-pipeline/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/dataengineerone-kedro-streaming-twitter-pipeline/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"⭐ dataengineerone kedro-streaming-twitter-pipeline\"/ data-glightbox=\"description: ⭐ dataengineerone kedro-streaming-twitter-pipeline\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/screenshot-to-blog/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/screenshot-to-blog/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"How I Quickly Capture Screenshots directly into My Blog\"/ data-glightbox=\"description: How I Quickly Capture Screenshots directly into My Blog\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/looking-for-a-heroku-replacement/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/looking-for-a-heroku-replacement/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Looking for a Heroku replacement, What I found was shocking!\"/ data-glightbox=\"description: Looking for a Heroku replacement, What I found was shocking!\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/thoughts-853/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/thoughts-853/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"💭 My Bed Doesn’t Work Because of AWS Outage? TheStandup - YouTube\"/ data-glightbox=\"description: 💭 My Bed Doesn’t Work Because of AWS Outage? TheStandup - YouTube\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Dont Starve Together Session One - Getting Into It With A Clockwork Bishop\"/ data-glightbox=\"description: Dont Starve Together Session One - Getting Into It With A Clockwork Bishop\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"shots\"\u003eshots \u003ca href=\"#shots\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI also do \u003ca href=\"/tags/shots/\" class=\"wikilink\" data-title=\"Posts tagged: shots\" data-description=\"All posts with the tag \u0026#34;shots\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;shots\u0026#34;\"\u003ePosts tagged: shots\u003c/a\u003e posts that change the og template quite a bit by adding\nthe image to the page.  I’ll do the same script, but add a filter to the\nimages.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003eitertools\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003emarkata\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elens\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;length\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;title\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;slug\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eslug\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;templateKey==\u0026#34;shots\u0026#34; and \u0026#34;family\u0026#34; not in tags\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003elens_sorted\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003esorted\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elens\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;length\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003egroups\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eg\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003ek\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eg\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003egroupby\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elens_sorted\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ekey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003elambda\u003c/span\u003e \u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ex\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;length\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e//\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e*\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eg\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eg\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003egroups\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e()]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eogs\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;[![\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;slug\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4)](https://waylonwalker.com/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;slug\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e/og/)\u0026#39;\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eposts\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejoin\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eogs\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/funk-track-1/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/funk-track-1/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Funk Track 1\"/ data-glightbox=\"description: Funk Track 1\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/hornet-on-a-bench/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/hornet-on-a-bench/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Hornet On A Bench\"/ data-glightbox=\"description: Hornet On A Bench\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/apple-boxes-complete/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/apple-boxes-complete/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Apple Boxes Complete\"/ data-glightbox=\"description: Apple Boxes Complete\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/bambu-poop-flinger-jammed/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/bambu-poop-flinger-jammed/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Bambu Poop Flinger Jammed\"/ data-glightbox=\"description: Bambu Poop Flinger Jammed\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/first-fingerboard-in-the-press/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/first-fingerboard-in-the-press/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"First Fingerboard In The Press\"/ data-glightbox=\"description: First Fingerboard In The Press\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/wyatt-drew-a-watertower-in-aesprite/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/wyatt-drew-a-watertower-in-aesprite/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Wyatt Drew A Watertower In Aesprite\"/ data-glightbox=\"description: Wyatt Drew A Watertower In Aesprite\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/design-for-bosch-colt-dust-collection-v1/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/design-for-bosch-colt-dust-collection-v1/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Design For Bosch Colt Dust Collection V1\"/ data-glightbox=\"description: Design For Bosch Colt Dust Collection V1\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/dont-starve-together-session-one---nooo-luuucy/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---nooo-luuucy/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Dont Starve Together Session One - Nooo Luuucy\"/ data-glightbox=\"description: Dont Starve Together Session One - Nooo Luuucy\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/dont-starve-together-session-one---setting-up-base/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---setting-up-base/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Dont Starve Together Session One - Setting Up Base\"/ data-glightbox=\"description: Dont Starve Together Session One - Setting Up Base\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/dont-starve-together-session-one---opening-up-the-garden/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---opening-up-the-garden/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Dont Starve Together Session One - Opening Up The Garden\"/ data-glightbox=\"description: Dont Starve Together Session One - Opening Up The Garden\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/first-encounter-with-a-tall-bird/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/first-encounter-with-a-tall-bird/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Dont Starve Together Session One - First Encounter With A Tall Bird\"/ data-glightbox=\"description: Dont Starve Together Session One - First Encounter With A Tall Bird\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026amp;format=jpg\u0026amp;v=4\" alt=\"Dont Starve Together Session One - Getting Into It With A Clockwork Bishop\"/ data-glightbox=\"description: Dont Starve Together Session One - Getting Into It With A Clockwork Bishop\"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI'm making an effort to make my og images better yet again, I'm going for that\nnext 10% better.  I really like my og images, but there are some title sizes\nthat overflow.  This page is a page to help debug.  How I make these og images\nis for another day.\n\n## Script\n\nI use my own static site generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e.  I can use it to generate a\nlist of posts wrapped in their og image.  I use itertools to do a groupby so\nthat I can do roughly every 5 characters larger, and see a wide variety of\nsizes.\n\n``` python\nfrom markata import Markata\nfrom itertools import groupby\n\nmarkata = Markata()\nlens = [{'length': len(post.title), 'title': post.title, 'slug': post.slug} for post in m.posts]\nlens_sorted = sorted(lens, key=lambda x: x[\"length\"])\n\ngroups = {\n    k: list(g)\n    for k, g in groupby(lens_sorted, key=lambda x: (x[\"length\"] // 5) * 5)\n}\n\nposts = [g[0] for g in groups.values()]\nogs = [ f'[![{post[\"title\"]}](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/{ post[\"slug\"] }/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/{ post[\"slug\"] }/og/)' for post in posts]\nprint(\"\\n\\n\".join(ogs))\n\n```\n\n## OG-Sample\n\n[![sample](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/sample/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/sample/og/)\n\n[![Kedro](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/kedro/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/kedro/og/)\n\n[![Weeknote 0](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/weeknote-0/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/weeknote-0/og/)\n\n[![Upcoming Stream](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/upcoming-streams/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/upcoming-streams/og/)\n\n[![Codeit Bro Interview](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/codeit-bro-interview/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/codeit-bro-interview/og/)\n\n[![⭐ Doomlab7 homelab-argocd](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/doomlab7-homelab-argocd/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/doomlab7-homelab-argocd/og/)\n\n[![⭐ heathdbrown python_code_tips](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/heathdbrown-python-code-tips/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/heathdbrown-python-code-tips/og/)\n\n[![Making good documentation in python](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/making-good-documentation-in-python/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/making-good-documentation-in-python/og/)\n\n[![What DataScientists Should Know About S3](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/s3-datascience/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/s3-datascience/og/)\n\n[![⭐ nvim-treesitter nvim-treesitter-textobjects](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/nvim-treesitter-nvim-treesitter-textobjects/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/nvim-treesitter-nvim-treesitter-textobjects/og/)\n\n[![⭐ dataengineerone kedro-streaming-twitter-pipeline](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/dataengineerone-kedro-streaming-twitter-pipeline/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/dataengineerone-kedro-streaming-twitter-pipeline/og/)\n\n[![How I Quickly Capture Screenshots directly into My Blog](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/screenshot-to-blog/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/screenshot-to-blog/og/)\n\n[![Looking for a Heroku replacement, What I found was shocking!](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/looking-for-a-heroku-replacement/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/looking-for-a-heroku-replacement/og/)\n\n[![💭 My Bed Doesn't Work Because of AWS Outage? TheStandup - YouTube](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/thoughts-853/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/thoughts-853/og/)\n\n[![Dont Starve Together Session One - Getting Into It With A Clockwork Bishop](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/)\n\n## shots\n\nI also do \u003ca href=\"/tags/shots/\" class=\"wikilink\" data-title=\"Posts tagged: shots\" data-description=\"All posts with the tag \u0026#34;shots\u0026#34;\"\u003ePosts tagged: shots\u003c/a\u003e posts that change the og template quite a bit by adding\nthe image to the page.  I'll do the same script, but add a filter to the\nimages.\n\n``` python\nfrom markata import Markata\nfrom itertools import groupby\n\nmarkata = Markata()\nlens = [{'length': len(post.title), 'title': post.title, 'slug': post.slug} for post in m.filter('templateKey==\"shots\" and \"family\" not in tags')]\nlens_sorted = sorted(lens, key=lambda x: x[\"length\"])\n\ngroups = {\n    k: list(g)\n    for k, g in groupby(lens_sorted, key=lambda x: (x[\"length\"] // 5) * 5)\n}\n\nposts = [g[0] for g in groups.values()]\nogs = [ f'[![{post[\"title\"]}](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/{ post[\"slug\"] }/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/{ post[\"slug\"] }/og/)' for post in posts]\nprint(\"\\n\\n\".join(ogs))\n```\n\n[![Funk Track 1](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/funk-track-1/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/funk-track-1/og/)\n\n[![Hornet On A Bench](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/hornet-on-a-bench/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/hornet-on-a-bench/og/)\n\n[![Apple Boxes Complete](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/apple-boxes-complete/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/apple-boxes-complete/og/)\n\n[![Bambu Poop Flinger Jammed](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/bambu-poop-flinger-jammed/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/bambu-poop-flinger-jammed/og/)\n\n[![First Fingerboard In The Press](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/first-fingerboard-in-the-press/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/first-fingerboard-in-the-press/og/)\n\n[![Wyatt Drew A Watertower In Aesprite](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/wyatt-drew-a-watertower-in-aesprite/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/wyatt-drew-a-watertower-in-aesprite/og/)\n\n[![Design For Bosch Colt Dust Collection V1](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/design-for-bosch-colt-dust-collection-v1/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/design-for-bosch-colt-dust-collection-v1/og/)\n\n[![Dont Starve Together Session One - Nooo Luuucy](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---nooo-luuucy/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/dont-starve-together-session-one---nooo-luuucy/og/)\n\n[![Dont Starve Together Session One - Setting Up Base](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---setting-up-base/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/dont-starve-together-session-one---setting-up-base/og/)\n\n[![Dont Starve Together Session One - Opening Up The Garden](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---opening-up-the-garden/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/dont-starve-together-session-one---opening-up-the-garden/og/)\n\n[![Dont Starve Together Session One - First Encounter With A Tall Bird](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/first-encounter-with-a-tall-bird/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/first-encounter-with-a-tall-bird/og/)\n\n[![Dont Starve Together Session One - Getting Into It With A Clockwork Bishop](https://shots.waylonwalker.com/shot/?url=https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\u0026format=jpg\u0026v=4)](https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/og/)\n\n",
      "summary": "I'm making an effort to make my og images better yet again, I'm going for that next 10% better. I really like my og images, but there are some title sizes...",
      "date_published": "2026-01-09T08:19:29Z",
      "date_modified": "2026-01-09T08:19:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/pog/",
      "url": "https://waylonwalker.com/pog/",
      "title": "POG",
      "content_html": "\u003cp\u003e\u003cstrong\u003ePOG\u003c/strong\u003e: \u003cstrong\u003eP\u003c/strong\u003elay \u003cstrong\u003eO\u003c/strong\u003ef the \u003cstrong\u003eG\u003c/strong\u003eame - used to express shock or excitement\nafter a noteworthy moment.\u003c/p\u003e\n",
      "content_text": "\n**POG**: **P**lay **O**f the **G**ame - used to express shock or excitement\nafter a noteworthy moment.\n",
      "summary": "**: **lay **f the **ame - used to express shock or excitement after a noteworthy moment.",
      "date_published": "2026-01-08T20:17:27Z",
      "date_modified": "2026-01-08T20:17:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "glossary"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/broodmother-ending/",
      "url": "https://waylonwalker.com/shots/broodmother-ending/",
      "title": "Broodmother Ending",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/c7d45133-c8c3-469f-9572-6036704309cb.mp4\" class=\"glightbox-link\" aria-label=\"Broodmother Ending\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/c7d45133-c8c3-469f-9572-6036704309cb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/c7d45133-c8c3-469f-9572-6036704309cb.mp4\" type=\"video/mp4\"\u003eBroodmother Ending\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBroodmother Ending\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Broodmother Ending](https://dropper.waylonwalker.com/file/c7d45133-c8c3-469f-9572-6036704309cb.mp4)\n\n\u003e Broodmother Ending\n",
      "summary": "Broodmother Ending",
      "image": "https://dropper.waylonwalker.com/file/c7d45133-c8c3-469f-9572-6036704309cb.mp4",
      "date_published": "2026-01-08T17:31:33Z",
      "date_modified": "2026-01-08T17:31:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/broodmother/",
      "url": "https://waylonwalker.com/shots/broodmother/",
      "title": "Broodmother",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/33725801-44ae-45ef-85e8-a0dc802ab775.mp4\" class=\"glightbox-link\" aria-label=\"Broodmother\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/33725801-44ae-45ef-85e8-a0dc802ab775.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/33725801-44ae-45ef-85e8-a0dc802ab775.mp4\" type=\"video/mp4\"\u003eBroodmother\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBroodmother\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Broodmother](https://dropper.waylonwalker.com/file/33725801-44ae-45ef-85e8-a0dc802ab775.mp4)\n\n\u003e Broodmother\n",
      "summary": "Broodmother",
      "image": "https://dropper.waylonwalker.com/file/33725801-44ae-45ef-85e8-a0dc802ab775.mp4",
      "date_published": "2026-01-08T17:29:43Z",
      "date_modified": "2026-01-08T17:29:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/2026-resolutions/",
      "url": "https://waylonwalker.com/2026-resolutions/",
      "title": "2026 Resolutions",
      "content_html": "\u003cp\u003eIt’s that time of year, Coming back to work out of a big break and thinking\nabout big changes.\u003c/p\u003e\n\u003ch2 id=\"daily-notes\"\u003eDaily Notes \u003ca href=\"#daily-notes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eKeep up with daily notes, maybe not here, I tend to have more targeted notes\nhere with full blog posts, but for work daily notes is \u003ca href=\"/pog/\" class=\"glossary-term\" title=\"**: **lay **f the **ame - used to express shock or excitement after a noteworthy moment.\"\u003ePOG\u003c/a\u003e and needs to be\nleaned on.  LLM’s do really good at ingesting markdown and reminding me of\nthings that I need to do, or did, or need to follow up on.\u003c/p\u003e\n\u003ch2 id=\"reader\"\u003eReader \u003ca href=\"#reader\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSocial media is changing, quickly becoming enshitified, I enjoy interacting\nwith some of the people I’ve met online, reading their opinions, and learning\nfrom their experiences.  I don’t need their hot takes, don’t care about their\npolitical takes.  I like boring posts that typically fade out of whats picked\nup on the algorithm.  I like a good 5-10 minute read or a long form podcast\ntalk.  I will be aggressively collecting more rss feeds to read and keep up\nwith.\u003c/p\u003e\n\u003ch2 id=\"neovim\"\u003e(Neo)Vim \u003ca href=\"#neovim\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve had these bad habits in my config for years, from day one of using vim.\nIt’s time to kill these. \u003ccode\u003ejjgww\u003c/code\u003e.  I killed them this morning, we will see how\nlong I keep typing out \u003ccode\u003ejj\u003c/code\u003e all over my editor before I fix it mentally.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-- bad habits\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim.keymap.set\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;i\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;jj\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;esc\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim.keymap.set\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;i\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;jk\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;esc\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim.keymap.set\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;i\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;JJ\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;esc\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim.keymap.set\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;i\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;jJ\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;esc\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evim.keymap.set\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;i\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;Jj\u0026#34;\u003c/span\u003e, \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;esc\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition tip\"\u003e\n\u003cp class=\"admonition-title\"\u003eTip\u003c/p\u003e\n\u003cp\u003eI need to lean on \u003ccode\u003e\u0026lt;C-o\u0026gt;\u003c/code\u003e a little more to run single commands in normal\nmode from insert mode.  The pattern that is hitting me hard right now is\n\u003ccode\u003ejjgwwA\u003c/code\u003e insert mode, format, insert at end of line.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"distrobox\"\u003eDistrobox \u003ca href=\"#distrobox\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI was a heavy user of distrobox as my primary dev environment on Bazzite and I\nneed to get back there. I have a lot of stuff installed on this current system.\nI’ve been sloppy.  I am not sure I was planning on staying on arch/hyprland\nlong, I did it to do it with my son, his got borked a month ago and he is back\nto bazzite, I think I’ll be back there and want to be ready to float freely\nbetween distros.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eclean dotfiles\u003c/li\u003e\n\u003cli\u003ework from a distrobox image that I make\u003c/li\u003e\n\u003cli\u003ekeep working projects backed up\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"vibe-coding\"\u003e\u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003eVibe Coding\u003c/a\u003e \u003ca href=\"#vibe-coding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAgents are the future, people that I really trust are on both sides of the\nargument.  Some saying they stopped coding months ago and claude does\neverything for them.  Some in between, some are completely against.\u003c/p\u003e\n\u003cp\u003eIt feels like the tooling has really taken off over the past few months, the\nmodels are getting better, but not at the same rate they were.  The tools are\nreally making this possible.\u003c/p\u003e\n\u003cp\u003eMy experience is quite mixed, I’m often impressed with what it does, and\nappalled at how bad it does other things.  I just want it to do what I mean\nwith the fewest words possible.  I’ve been working on deeper plans more and\nmore, still with mixed results.  With larger plans the models seem to do more\nwork, but still not getting that great experience every time.\u003c/p\u003e\n\u003cp\u003eI really need to get my workspaces workflow down, have models working in a\nseparate workspace, and be willing to throw away shit code quickly and try\nagain from another angle.\u003c/p\u003e\n\u003cp\u003eThe future is a deep understanding on what needs to be done, how do to it, and\nnot the syntax.  The tools are getting better.  You need to know less and less\nabout them, less and less about models as the auto routers get better.  The\ncore skills of architecture, design, and implementation are more important than\never.\u003c/p\u003e\n\u003cp\u003eLast year I was able to vibe out some POC work, but still not letting the\nagents touch my production code.  It wasn’t there for me, I probably did not\nhave access to the really good stuff either.  Now I think what I have access to\nis catching up to Claude.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003esandbox them\u003c/li\u003e\n\u003cli\u003equick to POC\u003c/li\u003e\n\u003cli\u003equick to move on from broken attempts\u003c/li\u003e\n\u003cli\u003elearn to lead\u003c/li\u003e\n\u003cli\u003elearn to let go of syntax opinions\u003c/li\u003e\n\u003cli\u003elearn what makes good products/tools/apis hold the vibes to this.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThere’s something here, very respectable people are betting on this, but its\nnot working for me, I don’t think I have the right tools.  I already have it a\nday, and got a few hundred LOC out while theo is claiming opus can do 10k.\u003c/p\u003e\n\u003ch2 id=\"not-everything-will-be-a-side-hustle\"\u003eNot Everything will be a side hustle \u003ca href=\"#not-everything-will-be-a-side-hustle\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve tried to start too many side hustles, none of them work out.  Thinking of\nthem as a side hustle steals the joy of the hobby.  I have too much going on\noutside of work for adding things like this not to add stress to already\nstressful situations, I need to reduce stress and find the joy and happiness in\nside projects and not turn everything into something more.\u003c/p\u003e\n\u003ch2 id=\"keebs\"\u003eKeebs \u003ca href=\"#keebs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis one is fresh on the mind only because I just built out a new keyboard for\nwork.  I want to have a good robust build at home, work, and potentially have a\ngood backup.  I have a good design that is very cheap and fairly easy to build,\nbut is quite time consuming.  I am going to put some work in early this year to\nget a couple of clones.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/9cf75771-e3a5-428f-a3a9-0e32fda0e037.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/9cf75771-e3a5-428f-a3a9-0e32fda0e037.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"more-offline\"\u003eMore Offline \u003ca href=\"#more-offline\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLooking back at 2025, I actually did fairly well of doing a bit more offline.\nIt’s been a hard transition out of pandemic times for our family, we had a lot\nof extra health precautions that lasted longer than most other people.\u003c/p\u003e\n\u003cp\u003eThis year I should do more of this.  More bike rides, more skate, more basement\nhangouts, more art.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eNew dart board in the basement\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eMore creativity.  I designed and built fingerboard obstacles to work like legos with 3/4\u0026#34; plywood last November.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ebuilding a fingerboard park in the basement\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eMore building\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ebuilding set for Jolly Holiday with Rhiannon\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/44be3230-29cc-4a5b-a495-4dd7c4e11c2b.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/44be3230-29cc-4a5b-a495-4dd7c4e11c2b.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ebuilding boxes for Jolly Holiday with Wyatt\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eMore bike rides, fewer nice days wasted, they are relaxing and get good energy out.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f9199d9b-74dc-4650-b1cf-2ac1ffd50e02.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f9199d9b-74dc-4650-b1cf-2ac1ffd50e02.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBike Rides\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nIt's that time of year, Coming back to work out of a big break and thinking\nabout big changes.\n\n## Daily Notes\n\nKeep up with daily notes, maybe not here, I tend to have more targeted notes\nhere with full blog posts, but for work daily notes is POG and needs to be\nleaned on.  LLM's do really good at ingesting markdown and reminding me of\nthings that I need to do, or did, or need to follow up on.\n\n## Reader\n\nSocial media is changing, quickly becoming enshitified, I enjoy interacting\nwith some of the people I've met online, reading their opinions, and learning\nfrom their experiences.  I don't need their hot takes, don't care about their\npolitical takes.  I like boring posts that typically fade out of whats picked\nup on the algorithm.  I like a good 5-10 minute read or a long form podcast\ntalk.  I will be aggressively collecting more rss feeds to read and keep up\nwith.\n\n## (Neo)Vim\n\nI've had these bad habits in my config for years, from day one of using vim.\nIt's time to kill these. `jjgww`.  I killed them this morning, we will see how\nlong I keep typing out `jj` all over my editor before I fix it mentally.\n\n``` bash\n-- bad habits\nvim.keymap.set(\"i\", \"jj\", \"\u003cesc\u003e\")\nvim.keymap.set(\"i\", \"jk\", \"\u003cesc\u003e\")\nvim.keymap.set(\"i\", \"JJ\", \"\u003cesc\u003e\")\nvim.keymap.set(\"i\", \"jJ\", \"\u003cesc\u003e\")\nvim.keymap.set(\"i\", \"Jj\", \"\u003cesc\u003e\")\n```\n\n!!! Tip\n\n    I need to lean on `\u003cC-o\u003e` a little more to run single commands in normal\n    mode from insert mode.  The pattern that is hitting me hard right now is\n    `jjgwwA` insert mode, format, insert at end of line.\n\n## Distrobox\n\nI was a heavy user of distrobox as my primary dev environment on Bazzite and I\nneed to get back there. I have a lot of stuff installed on this current system.\nI've been sloppy.  I am not sure I was planning on staying on arch/hyprland\nlong, I did it to do it with my son, his got borked a month ago and he is back\nto bazzite, I think I'll be back there and want to be ready to float freely\nbetween distros.\n\n* clean dotfiles\n* work from a distrobox image that I make\n* keep working projects backed up\n\n## Vibe Coding\n\nAgents are the future, people that I really trust are on both sides of the\nargument.  Some saying they stopped coding months ago and claude does\neverything for them.  Some in between, some are completely against.\n\nIt feels like the tooling has really taken off over the past few months, the\nmodels are getting better, but not at the same rate they were.  The tools are\nreally making this possible.\n\nMy experience is quite mixed, I'm often impressed with what it does, and\nappalled at how bad it does other things.  I just want it to do what I mean\nwith the fewest words possible.  I've been working on deeper plans more and\nmore, still with mixed results.  With larger plans the models seem to do more\nwork, but still not getting that great experience every time.\n\nI really need to get my workspaces workflow down, have models working in a\nseparate workspace, and be willing to throw away shit code quickly and try\nagain from another angle.\n\nThe future is a deep understanding on what needs to be done, how do to it, and\nnot the syntax.  The tools are getting better.  You need to know less and less\nabout them, less and less about models as the auto routers get better.  The\ncore skills of architecture, design, and implementation are more important than\never.\n\nLast year I was able to vibe out some POC work, but still not letting the\nagents touch my production code.  It wasn't there for me, I probably did not\nhave access to the really good stuff either.  Now I think what I have access to\nis catching up to Claude.\n\n* sandbox them\n* quick to POC\n* quick to move on from broken attempts\n* learn to lead\n* learn to let go of syntax opinions\n* learn what makes good products/tools/apis hold the vibes to this.\n\nThere's something here, very respectable people are betting on this, but its\nnot working for me, I don't think I have the right tools.  I already have it a\nday, and got a few hundred LOC out while theo is claiming opus can do 10k.\n\n## Not Everything will be a side hustle\n\nI've tried to start too many side hustles, none of them work out.  Thinking of\nthem as a side hustle steals the joy of the hobby.  I have too much going on\noutside of work for adding things like this not to add stress to already\nstressful situations, I need to reduce stress and find the joy and happiness in\nside projects and not turn everything into something more.\n\n## Keebs\n\nThis one is fresh on the mind only because I just built out a new keyboard for\nwork.  I want to have a good robust build at home, work, and potentially have a\ngood backup.  I have a good design that is very cheap and fairly easy to build,\nbut is quite time consuming.  I am going to put some work in early this year to\nget a couple of clones.\n\n![](https://dropper.waylonwalker.com/file/9cf75771-e3a5-428f-a3a9-0e32fda0e037.webp)\n\n## More Offline\n\nLooking back at 2025, I actually did fairly well of doing a bit more offline.\nIt's been a hard transition out of pandemic times for our family, we had a lot\nof extra health precautions that lasted longer than most other people.\n\nThis year I should do more of this.  More bike rides, more skate, more basement\nhangouts, more art.\n\n![](https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp)\n\n\u003e New dart board in the basement\n\nMore creativity.  I designed and built fingerboard obstacles to work like legos with 3/4\" plywood last November.\n\n![](https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp)\n\n\u003e building a fingerboard park in the basement\n\n\nMore building\n\n![](https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp)\n![](https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp)\n\n\u003e building set for Jolly Holiday with Rhiannon\n\n![](https://dropper.waylonwalker.com/file/44be3230-29cc-4a5b-a495-4dd7c4e11c2b.webp)\n\n\u003e building boxes for Jolly Holiday with Wyatt\n\nMore bike rides, fewer nice days wasted, they are relaxing and get good energy out.\n\n![](https://dropper.waylonwalker.com/file/f9199d9b-74dc-4650-b1cf-2ac1ffd50e02.webp)\n\n\u003e Bike Rides\n\n\n",
      "summary": "It's that time of year, Coming back to work out of a big break and thinking about big changes.",
      "date_published": "2026-01-08T10:48:12Z",
      "date_modified": "2026-01-08T10:48:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "personal"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/faydown-cloak/",
      "url": "https://waylonwalker.com/shots/faydown-cloak/",
      "title": "Faydown Cloak",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/2e0c80ed-f73a-4df5-855f-a0c320a415b3.mp4\" class=\"glightbox-link\" aria-label=\"Faydown Cloak\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/2e0c80ed-f73a-4df5-855f-a0c320a415b3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/2e0c80ed-f73a-4df5-855f-a0c320a415b3.mp4\" type=\"video/mp4\"\u003eFaydown Cloak\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eFaydown Cloak\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Faydown Cloak](https://dropper.waylonwalker.com/file/2e0c80ed-f73a-4df5-855f-a0c320a415b3.mp4)\n\n\u003e Faydown Cloak\n",
      "summary": "Faydown Cloak",
      "image": "https://dropper.waylonwalker.com/file/2e0c80ed-f73a-4df5-855f-a0c320a415b3.mp4",
      "date_published": "2026-01-08T07:43:46Z",
      "date_modified": "2026-01-08T07:43:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-904/",
      "url": "https://waylonwalker.com/thought-904/",
      "title": "💭 There's an Actual Reason You Can't Recycle Plastic - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"325HdQe4WM4\" title=\"There\u0026#39;s an Actual Reason You Can\u0026#39;t Recycle Plastic\" playlabel=\"Play: There\u0026#39;s an Actual Reason You Can\u0026#39;t Recycle Plastic\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eIn all of the documentaries I’ve seen on how hard it is to recycle plastic, how hard it is to separate all the small pieces from each other, how expensive it is, dirty it is, how just plain ineffective we are at doing it I’ve never seen this angle.  In a nutshell the other side of the equation is that as we pull natural gas out of shale is that we pull ethylene out as a byproduct.  We don’t even ask for it, it just comes with the methane gas that we are going for.  So as we drill, Frack, and mine this out to heat our homes and create electricity we are stuck with all of this ethylene.  It’s terrible for the environment, just like methane it’s a rough greenhouse gas.  Companies are allowed to flare off a certain amount, they can push some down the pipe, but are still left with tons leftover that they practically give away.  Turns out that this stuff is very cheap and very much wants to be turned into plastic.  Very clean food grade plastic, very easily and cheaply compared to recycling.  Excess is a big problem that needs solutions, but it has hard problems at both ends of the situation that don’t make it easy for anyone trying to take care of it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"325HdQe4WM4\" title=\"There\u0026#39;s an Actual Reason You Can\u0026#39;t Recycle Plastic\" playlabel=\"Play: There\u0026#39;s an Actual Reason You Can\u0026#39;t Recycle Plastic\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nIn all of the documentaries I've seen on how hard it is to recycle plastic, how hard it is to separate all the small pieces from each other, how expensive it is, dirty it is, how just plain ineffective we are at doing it I've never seen this angle.  In a nutshell the other side of the equation is that as we pull natural gas out of shale is that we pull ethylene out as a byproduct.  We don't even ask for it, it just comes with the methane gas that we are going for.  So as we drill, Frack, and mine this out to heat our homes and create electricity we are stuck with all of this ethylene.  It's terrible for the environment, just like methane it's a rough greenhouse gas.  Companies are allowed to flare off a certain amount, they can push some down the pipe, but are still left with tons leftover that they practically give away.  Turns out that this stuff is very cheap and very much wants to be turned into plastic.  Very clean food grade plastic, very easily and cheaply compared to recycling.  Excess is a big problem that needs solutions, but it has hard problems at both ends of the situation that don't make it easy for anyone trying to take care of it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=325HdQe4WM4",
      "date_published": "2026-01-08T03:16:18Z",
      "date_modified": "2026-01-08T03:16:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "environment",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-903/",
      "url": "https://waylonwalker.com/thought-903/",
      "title": "💭 feat: add llms.txt endpoint for LLM-optimized documentation by...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/d1a3efccfb3d0d35a0b5e964bd197c3f81615743a1ebcc02f07cb5c45742233f/tailwindlabs/tailwindcss.com/pull/2388\" alt=\"feat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com — Add /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption.\n\u0026lt;p\u0026gt;Extract text from MDX files, removing J…\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: feat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com — Add /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption.\n\u0026lt;p\u0026gt;Extract text from MDX files, removing J…\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003efeat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eAdd /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption.\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eExtract text from MDX files, removing J…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn this one is getting some reach, I’ve seen it from \u003ca href=\"https://simonwillison.net/2026/Jan/7/adam-wathan/#atom-everything\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\" class=\"has-avatar  has-avatar-before\"\u003eSimon Willison\u003c/a\u003e and \u003ca href=\"https://justin.searls.co/takes/2026-01-07-14h15m44s/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justin.searls.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justin.searls.co.ico\" class=\"has-avatar  has-avatar-before\"\u003eJustin Searls\u003c/a\u003e and \u003ca href=\"https://www.youtube.com/watch?v=luhgjBrRulk\" 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\"\u003et3.gg\u003c/a\u003e.  I feel for Adam, He has built a fantastic product that the world is running with, something we all needed.  Something that everyone laughs at turns their nose up “ppft I don’t need that” the first time they see it, but once they try people get it, and a lot of them like it and keep it.  But its something that no one really wants to pay for, no matter how big of products get built on it.  As we see more and more features coming to css, its not stopping, the work will always be there.  I really hope to see something happen to tailwind to keep it afloat. massive growth and revenue down 80% does not help.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/d1a3efccfb3d0d35a0b5e964bd197c3f81615743a1ebcc02f07cb5c45742233f/tailwindlabs/tailwindcss.com/pull/2388\" alt=\"feat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com — Add /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption.\n\nExtract text from MDX files, removing J...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efeat: add llms.txt endpoint for LLM-optimized documentation by quantizor · Pull Request #2388 · tailwindlabs/tailwindcss.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAdd /llms.txt endpoint that serves a concatenated, text-only version of all Tailwind CSS documentation pages optimized for Large Language Model consumption.\n\nExtract text from MDX files, removing J...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDamn this one is getting some reach, I've seen it from [Simon Willison](https://simonwillison.net/2026/Jan/7/adam-wathan/#atom-everything) and [Justin Searls](https://justin.searls.co/takes/2026-01-07-14h15m44s/) and [t3.gg](https://www.youtube.com/watch?v=luhgjBrRulk).  I feel for Adam, He has built a fantastic product that the world is running with, something we all needed.  Something that everyone laughs at turns their nose up \"ppft I don't need that\" the first time they see it, but once they try people get it, and a lot of them like it and keep it.  But its something that no one really wants to pay for, no matter how big of products get built on it.  As we see more and more features coming to css, its not stopping, the work will always be there.  I really hope to see something happen to tailwind to keep it afloat. massive growth and revenue down 80% does not help. \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957",
      "date_published": "2026-01-08T01:22:02Z",
      "date_modified": "2026-01-08T01:22:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "css",
        "dev",
        "tailwindcss",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/rune-admonition/",
      "url": "https://waylonwalker.com/rune-admonition/",
      "title": "Rune Admonition",
      "content_html": "\u003clink rel=\"preconnect\" href=\"https://fonts.googleapis.com\"/\u003e\n\u003clink rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin=\"\"/\u003e\n\u003clink href=\"https://fonts.googleapis.com/css2?family=Noto+Sans+Runic\u0026amp;display=swap\" rel=\"stylesheet\"/\u003e\n\u003cstyle\u003e\n.admonition .rune {\n}\n\u003c/style\u003e\n\u003cp\u003e!!! Rune\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eᚨᛚᛚᚨᛁ ᛗᚨᚾᚾᚨ ᚠᚱᛖᛁ\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e!!! Rune\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ehi hello\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"admonition tip\"\u003e\n\u003cp class=\"admonition-title\"\u003eTip\u003c/p\u003e\n\u003cp\u003eHere’s a tip\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003clink rel=\"preconnect\" href=\"https://fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https://fonts.googleapis.com/css2?family=Noto+Sans+Runic\u0026display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cstyle\u003e\n.admonition .rune {\n}\n\u003c/style\u003e\n\n\n!!! Rune\n\n    ᚨᛚᛚᚨᛁ ᛗᚨᚾᚾᚨ ᚠᚱᛖᛁ\n\n!!! Rune\n\n    hi hello\n\n!!! tip\n\n    Here's a tip\n",
      "date_published": "2026-01-07T18:18:52Z",
      "date_modified": "2026-01-07T18:18:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "meta"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-902/",
      "url": "https://waylonwalker.com/thought-902/",
      "title": "💭 Photoshop for text — Steph Ango",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stephango.com/photoshop-for-text\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://stephango.com/assets/covers/photoshop-for-text.png\" alt=\"Photoshop for text — In the near future, transforming text over an entire document will become as commonplace as filtering images.\" loading=\"lazy\"/ data-glightbox=\"description: Photoshop for text — In the near future, transforming text over an entire document will become as commonplace as filtering images.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePhotoshop for text\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn the near future, transforming text over an entire document will become as commonplace as filtering images.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSteph Ango · stephango.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWhile the non deterministic nature of llms scare the heck out of me in the sense of just cutting it loose on my writing.  letting it go through all of my files and just edit them.  I do like the idea of mundane tools like “desaturate”, “Gaussian blur”, evolving out of it for text.  I don’t yet see this with the tools we have now, but it will be interesting to see them evolve.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stephango.com/photoshop-for-text\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://stephango.com/assets/covers/photoshop-for-text.png\" alt=\"Photoshop for text — In the near future, transforming text over an entire document will become as commonplace as filtering images.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePhotoshop for text\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn the near future, transforming text over an entire document will become as commonplace as filtering images.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSteph Ango \u0026middot; stephango.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWhile the non deterministic nature of llms scare the heck out of me in the sense of just cutting it loose on my writing.  letting it go through all of my files and just edit them.  I do like the idea of mundane tools like \"desaturate\", \"Gaussian blur\", evolving out of it for text.  I don't yet see this with the tools we have now, but it will be interesting to see them evolve.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://stephango.com/photoshop-for-text",
      "date_published": "2026-01-06T02:48:34Z",
      "date_modified": "2026-01-06T02:48:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "blog",
        "llm",
        "thought",
        "writing"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/hornet-on-a-bench/",
      "url": "https://waylonwalker.com/shots/hornet-on-a-bench/",
      "title": "Hornet On A Bench",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5eb1c0c6-8f48-4b36-82ac-62a35b6063e4.webp\" class=\"glightbox-link\" aria-label=\"Hornet on a bench\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/5eb1c0c6-8f48-4b36-82ac-62a35b6063e4.webp\" alt=\"Hornet on a bench\"/ data-glightbox=\"description: Hornet on a bench\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHornet sitting on a bench.  I 3d printed, painted, and assembled this set.  I really like how the bronze bench with gold highlights turned out.  The distressing on her nail and dress look great in person, and don’t come through the best the way the image is lit.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Hornet on a bench](https://dropper.waylonwalker.com/file/5eb1c0c6-8f48-4b36-82ac-62a35b6063e4.webp)\n\n\u003e Hornet sitting on a bench.  I 3d printed, painted, and assembled this set.  I really like how the bronze bench with gold highlights turned out.  The distressing on her nail and dress look great in person, and don't come through the best the way the image is lit.\n\n",
      "summary": "Hornet sitting on a bench. I 3d printed, painted, and assembled this set. I really like how the bronze bench with gold highlights turned out. The distressing on her nail and dress look great in person, and don't come through the best the way the image is lit.",
      "image": "https://dropper.waylonwalker.com/file/5eb1c0c6-8f48-4b36-82ac-62a35b6063e4.webp",
      "date_published": "2026-01-05T20:41:33Z",
      "date_modified": "2026-01-05T20:41:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-901/",
      "url": "https://waylonwalker.com/thought-901/",
      "title": "💭 File over app — Steph Ango",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stephango.com/file-over-app\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://stephango.com/assets/covers/file-over-app.png\" alt=\"File over app — If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...\" loading=\"lazy\"/ data-glightbox=\"description: File over app — If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFile over app\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSteph Ango · stephango.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003efile over app is a fantastic philosophy laid out well and concisely documented very well in this post.  The idea is that tools will change, we will want to use different tools, different editors, different computers over time.  What’s likely to outlast everything is plain text files that we can interact with a wide variety of tools.  Not encrypted in dedicated formats that die with our tools, but in plain text where a computer from 2160 is likey as capable of reading the file as one from 1960 would be.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stephango.com/file-over-app\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://stephango.com/assets/covers/file-over-app.png\" alt=\"File over app — If you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFile over app\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read. Use tools that give you...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSteph Ango \u0026middot; stephango.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nfile over app is a fantastic philosophy laid out well and concisely documented very well in this post.  The idea is that tools will change, we will want to use different tools, different editors, different computers over time.  What's likely to outlast everything is plain text files that we can interact with a wide variety of tools.  Not encrypted in dedicated formats that die with our tools, but in plain text where a computer from 2160 is likey as capable of reading the file as one from 1960 would be.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://stephango.com/file-over-app",
      "date_published": "2026-01-05T18:54:06Z",
      "date_modified": "2026-01-05T18:54:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought",
        "writing"
      ]
    },
    {
      "id": "https://waylonwalker.com/tpope-vim-speeddating/",
      "url": "https://waylonwalker.com/tpope-vim-speeddating/",
      "title": "⭐ tpope vim-speeddating",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/tpope/vim-speeddating\" 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\"\u003evim-speeddating\u003c/a\u003e by \u003ca href=\"https://github.com/tpope\" 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\"\u003etpope\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003espeeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [vim-speeddating](https://github.com/tpope/vim-speeddating) by [tpope](https://github.com/tpope), and it's truly impressive.\n\nspeeddating.vim: use CTRL-A/CTRL-X to increment dates, times, and more\n",
      "summary": "I recently discovered vim-speeddating by tpope, and it's truly impressive.",
      "date_published": "2026-01-04T23:10:42Z",
      "date_modified": "2026-01-04T23:10:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/jakoolit-wallpaper-bank/",
      "url": "https://waylonwalker.com/jakoolit-wallpaper-bank/",
      "title": "⭐ JaKooLit Wallpaper-Bank",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/JaKooLit\" 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\"\u003eJaKooLit\u003c/a\u003e and their project \u003ca href=\"https://github.com/JaKooLit/Wallpaper-Bank\" 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\"\u003eWallpaper-Bank\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eAdditional wallpapers which will be offered to users for my hyprland scripts\u003c/p\u003e\n",
      "content_text": "\nCheck out [JaKooLit](https://github.com/JaKooLit) and their project [Wallpaper-Bank](https://github.com/JaKooLit/Wallpaper-Bank).\n\nAdditional wallpapers which will be offered to users for my hyprland scripts\n",
      "summary": "Check out JaKooLit and their project Wallpaper-Bank.",
      "date_published": "2026-01-04T21:41:57Z",
      "date_modified": "2026-01-04T21:41:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/kickflip-down-the-3-stair---fingerboarding/",
      "url": "https://waylonwalker.com/shots/kickflip-down-the-3-stair---fingerboarding/",
      "title": "Kickflip Down The 3 Stair - Fingerboarding",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/6f042a91-1e90-445d-b91d-8d4ee187af2c.mp4\" class=\"glightbox-link\" aria-label=\"kickflip down the 3 stair - fingerboarding\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/6f042a91-1e90-445d-b91d-8d4ee187af2c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/6f042a91-1e90-445d-b91d-8d4ee187af2c.mp4\" type=\"video/mp4\"\u003ekickflip down the 3 stair - fingerboarding\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eKickflip down the 3 set using my new hand made 5 ply fingerboard.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![kickflip down the 3 stair - fingerboarding](https://dropper.waylonwalker.com/file/6f042a91-1e90-445d-b91d-8d4ee187af2c.mp4)\n\n\u003e Kickflip down the 3 set using my new hand made 5 ply fingerboard.\n\n",
      "summary": "Kickflip down the 3 set using my new hand made 5 ply fingerboard.",
      "image": "https://dropper.waylonwalker.com/file/6f042a91-1e90-445d-b91d-8d4ee187af2c.mp4",
      "date_published": "2026-01-04T19:55:43Z",
      "date_modified": "2026-01-04T19:55:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/til/tpope-vim-speeddating/",
      "url": "https://waylonwalker.com/til/tpope-vim-speeddating/",
      "title": "tpope vim-speeddating",
      "content_html": "\u003cp\u003eToday I discovered \u003ca href=\"https://github.com/tpope/vim-speeddating\" 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\"\u003evim-speeddating\u003c/a\u003e\nby tpope.  I’m sure I’ve seen years ago but it did not click for my workflow\nuntil today.  I often go through pictures from my phone for the past few days\nand make \u003ca href=\"/tags/shots/\" class=\"wikilink\" data-title=\"Posts tagged: shots\" data-description=\"All posts with the tag \u0026#34;shots\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;shots\u0026#34;\"\u003ePosts tagged: shots\u003c/a\u003e posts, but I want to date them to about when the image was\ntaken most of the time.  This allows me to quickly bump days up and down using\n\u003ccode\u003ec-a\u003c/code\u003e and \u003ccode\u003ec-x\u003c/code\u003e even around the new year.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/18c876c3-02ea-4c77-9f62-cdbb1bb759a1.mp4\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/18c876c3-02ea-4c77-9f62-cdbb1bb759a1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/18c876c3-02ea-4c77-9f62-cdbb1bb759a1.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSound on, listen to those new switches.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nToday I discovered [vim-speeddating](https://github.com/tpope/vim-speeddating)\nby tpope.  I'm sure I've seen years ago but it did not click for my workflow\nuntil today.  I often go through pictures from my phone for the past few days\nand make \u003ca href=\"/tags/shots/\" class=\"wikilink\" data-title=\"Posts tagged: shots\" data-description=\"All posts with the tag \u0026#34;shots\u0026#34;\"\u003ePosts tagged: shots\u003c/a\u003e posts, but I want to date them to about when the image was\ntaken most of the time.  This allows me to quickly bump days up and down using\n`c-a` and `c-x` even around the new year.\n\n![](https://dropper.waylonwalker.com/file/18c876c3-02ea-4c77-9f62-cdbb1bb759a1.mp4)\n\n\u003e Sound on, listen to those new switches.\n\n\n",
      "summary": "Today I discovered vim-speeddating by tpope. I'm sure I've seen years ago but it did not click for my workflow until today. I often go through pictures from...",
      "date_published": "2026-01-04T16:59:33Z",
      "date_modified": "2026-01-04T16:59:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/i'm-loving-these-akko-creamy-yellow-v3s/",
      "url": "https://waylonwalker.com/shots/i'm-loving-these-akko-creamy-yellow-v3s/",
      "title": "I'm Loving These Akko Creamy Yellow V3s",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/cac00007-2c7a-415e-b19e-a327c04c7abd.webp\" class=\"glightbox-link\" aria-label=\"I’m loving these Akko Creamy Yellow V3s\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/cac00007-2c7a-415e-b19e-a327c04c7abd.webp\" alt=\"I’m loving these Akko Creamy Yellow V3s\"/ data-glightbox=\"description: I’m loving these Akko Creamy Yellow V3s\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003emy latest porta john full mx build with Akko Creamy Yellow V3s installed on the right side and a hodge podge of Durock Lupine and kaihl browns on the left.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![I'm loving these Akko Creamy Yellow V3s](https://dropper.waylonwalker.com/file/cac00007-2c7a-415e-b19e-a327c04c7abd.webp)\n\n\u003e my latest porta john full mx build with Akko Creamy Yellow V3s installed on the right side and a hodge podge of Durock Lupine and kaihl browns on the left.\n\n",
      "summary": "my latest porta john full mx build with Akko Creamy Yellow V3s installed on the right side and a hodge podge of Durock Lupine and kaihl browns on the left.",
      "image": "https://dropper.waylonwalker.com/file/cac00007-2c7a-415e-b19e-a327c04c7abd.webp",
      "date_published": "2026-01-04T16:22:35Z",
      "date_modified": "2026-01-04T16:22:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-16/",
      "url": "https://waylonwalker.com/ping-16/",
      "title": "new keeb so good",
      "content_html": "\u003cp\u003eNew keeb feeling so good I don’t want to leave it.  I’m going to go from having\nmy worse favorite at work, to having my new favorite at work.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/9cf75771-e3a5-428f-a3a9-0e32fda0e037.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/9cf75771-e3a5-428f-a3a9-0e32fda0e037.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nNew keeb feeling so good I don't want to leave it.  I'm going to go from having\nmy worse favorite at work, to having my new favorite at work.\n\n![](https://dropper.waylonwalker.com/file/9cf75771-e3a5-428f-a3a9-0e32fda0e037.webp)\n",
      "summary": "New keeb feeling so good I don't want to leave it. I'm going to go from having my worse favorite at work, to having my new favorite at work.",
      "date_published": "2026-01-03T21:03:13Z",
      "date_modified": "2026-01-03T21:03:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-900/",
      "url": "https://waylonwalker.com/thought-900/",
      "title": "💭 The most popular blogs of Hacker News in 2025",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Jan/2/most-popular-blogs-of-hacker-news/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe most popular blogs of Hacker News in 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMichael Lynch maintains HN Popularity Contest, a site that tracks personal blogs on Hacker News and scores them based on how well they perform on that platform. The engine behind …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eCongrats Simon!  Well deserved metric for the level of content that he produces, Its remarkable the amount of high quality posts that come out of Simon Willison.  Also this looks like a really great resource to find other high quality blogs that I have not read before.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2026/Jan/2/most-popular-blogs-of-hacker-news/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe most popular blogs of Hacker News in 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMichael Lynch maintains HN Popularity Contest, a site that tracks personal blogs on Hacker News and scores them based on how well they perform on that platform. The engine behind …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nCongrats Simon!  Well deserved metric for the level of content that he produces, Its remarkable the amount of high quality posts that come out of Simon Willison.  Also this looks like a really great resource to find other high quality blogs that I have not read before.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2026/Jan/2/most-popular-blogs-of-hacker-news/#atom-everything",
      "date_published": "2026-01-03T18:14:32Z",
      "date_modified": "2026-01-03T18:14:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/tmk-portajohn-switches/",
      "url": "https://waylonwalker.com/shots/tmk-portajohn-switches/",
      "title": "A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/2ac24a6b-59a7-4348-af02-e5209f236528.webp\" class=\"glightbox-link\" aria-label=\"A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/2ac24a6b-59a7-4348-af02-e5209f236528.webp\" alt=\"A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.\"/ data-glightbox=\"description: A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.](http://dropper.waylonwalker.com/file/2ac24a6b-59a7-4348-af02-e5209f236528.webp)\n\u003e A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.\n\n",
      "summary": "A collection of custom mechanical keyboard keycaps, including several sets of purple, white, and other colored keycaps, are arranged on a wooden desk surface.",
      "image": "http://dropper.waylonwalker.com/file/2ac24a6b-59a7-4348-af02-e5209f236528.webp",
      "date_published": "2026-01-03T18:07:29Z",
      "date_modified": "2026-01-03T18:07:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "keycaps",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/steveyegge-gastown/",
      "url": "https://waylonwalker.com/steveyegge-gastown/",
      "title": "⭐ steveyegge gastown",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/steveyegge/gastown\" 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\"\u003egastown\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/steveyegge\" 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\"\u003esteveyegge\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eGas Town - multi-agent workspace manager\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [gastown](https://github.com/steveyegge/gastown), an amazing project by [steveyegge](https://github.com/steveyegge). It's worth exploring!\n\nGas Town - multi-agent workspace manager\n",
      "summary": "I'm really excited about gastown, an amazing project by steveyegge. It's worth exploring!",
      "date_published": "2026-01-02T18:43:02Z",
      "date_modified": "2026-01-02T18:43:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/light-mode-screen-recording-css/",
      "url": "https://waylonwalker.com/light-mode-screen-recording-css/",
      "title": "light mode screen recording css",
      "content_html": "\u003cp\u003eYesterday I wrote about a way to do \u003ca href=\"/light-mode-screen-recording/\" class=\"wikilink\" data-title=\"light mode screen recording\" data-description=\"I saw this tip from Cassidoo and had to try it out for myself. I kicked on a screen recording right from where my terminal was, converted it, and it actually...\" data-date=\"2026-01-01\" data-preview=\"I saw this tip from Cassidoo and had to try it out for myself. I kicked on a screen recording right from where my terminal was, converted it, and it actually...\"\u003elight mode screen recording\u003c/a\u003e to\nconvert to light mode from dark mode with ffmpeg.  I was wondering if it could\nbe done entirely on the front end for web applications.  Turns out you can.\nI’m sure there are limited wikis and site builders that don’t allow adding\nstyle like this, but it works if you can.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003evideo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003esrc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003econtrols\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"na\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;filter: invert(1) hue-rotate(180deg) contrast(1.2) saturate(1.1);\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003evideo\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls=\"\" style=\"filter: invert(1) hue-rotate(0deg) contrast(1.2) saturate(1.1);\"\u003e\u003c/video\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0 deg hue rotate\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls=\"\" style=\"filter: invert(1) hue-rotate(90deg) contrast(1.2) saturate(1.1);\"\u003e\u003c/video\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e90 deg hue rotate\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls=\"\" style=\"filter: invert(1) hue-rotate(180deg) contrast(1.2) saturate(1.1);\"\u003e\u003c/video\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e180 deg hue rotate\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls=\"\" style=\"filter: invert(1) hue-rotate(270deg) contrast(1.2) saturate(1.1);\"\u003e\u003c/video\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e270 deg hue rotate\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nYesterday I wrote about a way to do \u003ca href=\"/light-mode-screen-recording/\" class=\"wikilink\" data-title=\"light mode screen recording\" data-description=\"I saw this tip from Cassidoo and had to try it out for myself. I kicked on a screen recording right from where my terminal was, converted it, and it actually...\" data-date=\"2026-01-01\"\u003elight mode screen recording\u003c/a\u003e to\nconvert to light mode from dark mode with ffmpeg.  I was wondering if it could\nbe done entirely on the front end for web applications.  Turns out you can.\nI'm sure there are limited wikis and site builders that don't allow adding\nstyle like this, but it works if you can.\n\n``` html\n\u003cvideo\n    src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\"\n    controls\n    style=\"filter: invert(1) hue-rotate(180deg) contrast(1.2) saturate(1.1);\"\n    \u003e\n\u003c/video\u003e\n```\n\n\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls style=\"filter: invert(1) hue-rotate(0deg) contrast(1.2) saturate(1.1);\" \u003e\u003c/video\u003e\n\n\u003e 0 deg hue rotate\n\n\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls style=\"filter: invert(1) hue-rotate(90deg) contrast(1.2) saturate(1.1);\" \u003e\u003c/video\u003e\n\n\u003e 90 deg hue rotate\n\n\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls style=\"filter: invert(1) hue-rotate(180deg) contrast(1.2) saturate(1.1);\" \u003e\u003c/video\u003e\n\n\u003e 180 deg hue rotate\n\n\u003cvideo src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4?width=800\" controls style=\"filter: invert(1) hue-rotate(270deg) contrast(1.2) saturate(1.1);\" \u003e\u003c/video\u003e\n\n\u003e 270 deg hue rotate\n\n",
      "summary": "Yesterday I wrote about a way to do light-mode-screen-recording to convert to light mode from dark mode with ffmpeg. I was wondering if it could be done...",
      "date_published": "2026-01-02T10:29:10Z",
      "date_modified": "2026-01-02T10:29:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/theprimeagen-99/",
      "url": "https://waylonwalker.com/theprimeagen-99/",
      "title": "⭐ ThePrimeagen 99",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/ThePrimeagen/99\" 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\"\u003e99\u003c/a\u003e by \u003ca href=\"https://github.com/ThePrimeagen\" 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\"\u003eThePrimeagen\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eNeovim AI agent done right\u003c/p\u003e\n",
      "content_text": "\nCheck out [99](https://github.com/ThePrimeagen/99) by [ThePrimeagen](https://github.com/ThePrimeagen). It's a well-crafted project with great potential.\n\nNeovim AI agent done right\n",
      "summary": "Check out 99 by ThePrimeagen. It's a well-crafted project with great potential.",
      "date_published": "2026-01-02T04:36:11Z",
      "date_modified": "2026-01-02T04:36:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/portajohn3-ironing/",
      "url": "https://waylonwalker.com/shots/portajohn3-ironing/",
      "title": "Portajohn3 Ironing Issues",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/d575f8a8-a9e2-4eef-ab1c-7ff335ff6516.webp\" class=\"glightbox-link\" aria-label=\"A photo of a custom mechanical keyboard with colored keycaps. Visible text: (No visible text).\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/d575f8a8-a9e2-4eef-ab1c-7ff335ff6516.webp\" alt=\"A photo of a custom mechanical keyboard with colored keycaps. Visible text: (No visible text).\"/ data-glightbox=\"description: A photo of a custom mechanical keyboard with colored keycaps. Visible text: (No visible text).\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA close-up view of portajohn3 during build, it has most but not all keycaps installed.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eThis photo really highlights how bad the 3d printer did on ironing the top of\nthis keyboard.  Luckily I had printed it has a lower profile, and am putting\nfull size keys in it, so for it to sit flush I need to print some extra blocks\nto fill it in anyways.\u003c/p\u003e\n",
      "content_text": "\n![A photo of a custom mechanical keyboard with colored keycaps. Visible text: (No visible text).](http://dropper.waylonwalker.com/file/d575f8a8-a9e2-4eef-ab1c-7ff335ff6516.webp)\n\u003e A close-up view of portajohn3 during build, it has most but not all keycaps installed.\n\nThis photo really highlights how bad the 3d printer did on ironing the top of\nthis keyboard.  Luckily I had printed it has a lower profile, and am putting\nfull size keys in it, so for it to sit flush I need to print some extra blocks\nto fill it in anyways.\n",
      "summary": "I turned on ironing on the Portajohn3 print and it did not turn out good",
      "image": "http://dropper.waylonwalker.com/file/d575f8a8-a9e2-4eef-ab1c-7ff335ff6516.webp",
      "date_published": "2026-01-01T21:51:26Z",
      "date_modified": "2026-01-01T21:51:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "(No visible text)",
        "custom",
        "keyboard",
        "mechanical",
        "mechanical keyboard",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-899/",
      "url": "https://waylonwalker.com/thought-899/",
      "title": "💭 Convert a video from dark mode to light mode with FFmpeg!",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/ffmpeg-dark-light/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cassidoo.co/og-image/ffmpeg-dark-light.png\" alt=\"Convert a video from dark mode to light mode with FFmpeg! — Here\" loading=\"lazy\"/ data-glightbox=\"description: Convert a video from dark mode to light mode with FFmpeg! — Here\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eConvert a video from dark mode to light mode with FFmpeg!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHere\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eConverting video from dark mode to light mode after the fact is a pretty great idea, I’m surprised at how well it does.  Its definitely not perfect, but looks really good.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/ffmpeg-dark-light/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cassidoo.co/og-image/ffmpeg-dark-light.png\" alt=\"Convert a video from dark mode to light mode with FFmpeg! — Here\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eConvert a video from dark mode to light mode with FFmpeg!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHere\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nConverting video from dark mode to light mode after the fact is a pretty great idea, I'm surprised at how well it does.  Its definitely not perfect, but looks really good.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://cassidoo.co/post/ffmpeg-dark-light/",
      "date_published": "2026-01-01T18:00:56Z",
      "date_modified": "2026-01-01T18:00:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "ffmpeg",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/portajohn3-plate/",
      "url": "https://waylonwalker.com/shots/portajohn3-plate/",
      "title": "Portajohn3 Keyboard Plate",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/c01f0997-9a5a-4d8e-b1ad-384ad48f099c.webp\" class=\"glightbox-link\" aria-label=\"A custom mechanical keyboard plate, showing multiple sets of switch holes for hot-swapping.\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/c01f0997-9a5a-4d8e-b1ad-384ad48f099c.webp\" alt=\"A custom mechanical keyboard plate, showing multiple sets of switch holes for hot-swapping.\"/ data-glightbox=\"description: A custom mechanical keyboard plate, showing multiple sets of switch holes for hot-swapping.\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA black keyboard plate with multiple switch sockets, awaiting switches and PCB.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![A custom mechanical keyboard plate, showing multiple sets of switch holes for hot-swapping.](http://dropper.waylonwalker.com/file/c01f0997-9a5a-4d8e-b1ad-384ad48f099c.webp)\n\u003e A black keyboard plate with multiple switch sockets, awaiting switches and PCB.\n\n",
      "summary": "A black keyboard plate with multiple switch sockets, awaiting switches and PCB.",
      "image": "http://dropper.waylonwalker.com/file/c01f0997-9a5a-4d8e-b1ad-384ad48f099c.webp",
      "date_published": "2026-01-01T17:18:39Z",
      "date_modified": "2026-01-01T17:18:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/light-mode-screen-recording/",
      "url": "https://waylonwalker.com/light-mode-screen-recording/",
      "title": "light mode screen recording",
      "content_html": "\u003cp\u003eI saw this tip from\n\u003ca href=\"https://cassidoo.co/post/ffmpeg-dark-light/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/cassidoo.co.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/cassidoo.co.png\" class=\"has-avatar  has-avatar-before\"\u003eCassidoo\u003c/a\u003e\nand had to try it out for myself.  I kicked on a\nscreen recording right from where my terminal\nwas, converted it, and it actually looks pretty\ngood.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003effmpeg \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   -i screenrecording-2026-01-01_10-10-49.mp4 \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   -vf \u003cspan class=\"s2\"\u003e\u0026#34;negate,hue=h=180,eq=contrast=1.2:saturation=1.1\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   screenrecording-2026-01-01_10-10-49-light.mp4\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eDark Mode\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/de4e3378-6df2-45b1-84d5-0cc773ceb3c5.mp4\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/de4e3378-6df2-45b1-84d5-0cc773ceb3c5.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/de4e3378-6df2-45b1-84d5-0cc773ceb3c5.mp4\" type=\"video/mp4\"\u003eYour browser does not support the video tag.\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eLight Mode\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eThere are a few unsettling things about it, but\noverall I feel like it was a success.\u003c/p\u003e\n",
      "content_text": "\n\n\nI saw this tip from\n[Cassidoo](https://cassidoo.co/post/ffmpeg-dark-light/)\nand had to try it out for myself.  I kicked on a\nscreen recording right from where my terminal\nwas, converted it, and it actually looks pretty\ngood.\n\n\n``` bash\nffmpeg \\\n   -i screenrecording-2026-01-01_10-10-49.mp4 \\\n   -vf \"negate,hue=h=180,eq=contrast=1.2:saturation=1.1\" \\\n   screenrecording-2026-01-01_10-10-49-light.mp4\n```\n\n![](https://dropper.waylonwalker.com/file/1c53dbcb-4b84-4e94-9f04-a42986ab3fa1.mp4)\n\n\u003e Dark Mode\n\n![](https://dropper.waylonwalker.com/file/de4e3378-6df2-45b1-84d5-0cc773ceb3c5.mp4)\n\n\u003e Light Mode\n\nThere are a few unsettling things about it, but\noverall I feel like it was a success.\n\n",
      "summary": "I saw this tip from Cassidoo and had to try it out for myself. I kicked on a screen recording right from where my terminal was, converted it, and it actually...",
      "date_published": "2026-01-01T10:14:17Z",
      "date_modified": "2026-01-01T10:14:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "ffmpeg"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/custom-keyboard-keycaps-and-3d-printer/",
      "url": "https://waylonwalker.com/shots/custom-keyboard-keycaps-and-3d-printer/",
      "title": "Custom Keyboard Keycaps and 3D Printer",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/f7fcdb62-b212-484b-978a-6988f1fdde28.webp\" class=\"glightbox-link\" aria-label=\"A 3d printer printing the body of a keyboard\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/f7fcdb62-b212-484b-978a-6988f1fdde28.webp\" alt=\"A 3d printer printing the body of a keyboard\"/ data-glightbox=\"description: A 3d printer printing the body of a keyboard\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePortajohn3 getting printed on a bambu lab A1 printer\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![A 3d printer printing the body of a keyboard](http://dropper.waylonwalker.com/file/f7fcdb62-b212-484b-978a-6988f1fdde28.webp)\n\u003e Portajohn3 getting printed on a bambu lab A1 printer\n",
      "summary": "Portajohn3 on the printer",
      "image": "http://dropper.waylonwalker.com/file/f7fcdb62-b212-484b-978a-6988f1fdde28.webp",
      "date_published": "2025-12-29T22:16:37Z",
      "date_modified": "2025-12-29T22:16:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/my-first-hand-pressed-fingerboard-complete/",
      "url": "https://waylonwalker.com/shots/my-first-hand-pressed-fingerboard-complete/",
      "title": "My First Hand Pressed Fingerboard Complete",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/ad3118cc-8425-4462-a2de-5f5aefd645b5.webp\" class=\"glightbox-link\" aria-label=\"my first hand pressed fingerboard complete\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/ad3118cc-8425-4462-a2de-5f5aefd645b5.webp\" alt=\"my first hand pressed fingerboard complete\"/ data-glightbox=\"description: my first hand pressed fingerboard complete\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMy first hand pressed fingerboard with teak tuning trucks.  It has a purple bottom layer. Sitting on the bottom of a 3-stair.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![my first hand pressed fingerboard complete](https://dropper.waylonwalker.com/file/ad3118cc-8425-4462-a2de-5f5aefd645b5.webp)\n\n\u003e My first hand pressed fingerboard with teak tuning trucks.  It has a purple bottom layer. Sitting on the bottom of a 3-stair.\n\n",
      "summary": "My first hand pressed fingerboard with teak tuning trucks. It has a purple bottom layer. Sitting on the bottom of a 3-stair.",
      "image": "https://dropper.waylonwalker.com/file/ad3118cc-8425-4462-a2de-5f5aefd645b5.webp",
      "date_published": "2025-12-29T19:37:27Z",
      "date_modified": "2025-12-29T19:37:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/new-dart-board-in-the-basement/",
      "url": "https://waylonwalker.com/shots/new-dart-board-in-the-basement/",
      "title": "New Dart Board In The Basement",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp\" class=\"glightbox-link\" aria-label=\"New Dart Board in the Basement\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp\" alt=\"New Dart Board in the Basement\"/ data-glightbox=\"description: New Dart Board in the Basement\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI got a new dart board in the basement for Christmas, It’s been super fun to play with the kids.  We are getting a pretty good setup down there.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![New Dart Board in the Basement](https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp)\n\n\u003e I got a new dart board in the basement for Christmas, It's been super fun to play with the kids.  We are getting a pretty good setup down there.\n\n",
      "summary": "I got a new dart board in the basement for Christmas, It's been super fun to play with the kids. We are getting a pretty good setup down there.",
      "image": "https://dropper.waylonwalker.com/file/46091653-f759-4a53-b3b7-e9e6226a5a12.webp",
      "date_published": "2025-12-29T15:55:20Z",
      "date_modified": "2025-12-29T15:55:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/first-fingerboard-in-the-press/",
      "url": "https://waylonwalker.com/shots/first-fingerboard-in-the-press/",
      "title": "First Fingerboard In The Press",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp\" class=\"glightbox-link\" aria-label=\"First Fingerboard in the Press\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp\" alt=\"First Fingerboard in the Press\"/ data-glightbox=\"description: First Fingerboard in the Press\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003e5 layers of plywood pressed into a 3d printed fingerboard press.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![First Fingerboard in the Press](https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp)\n\n\u003e 5 layers of plywood pressed into a 3d printed fingerboard press.\n\n",
      "summary": "5 layers of plywood pressed into a 3d printed fingerboard press.",
      "image": "https://dropper.waylonwalker.com/file/fb569b3a-d91d-4ad4-92f8-12e83c39fbda.webp",
      "date_published": "2025-12-28T19:41:06Z",
      "date_modified": "2025-12-28T19:41:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/garmond-and-zaza/",
      "url": "https://waylonwalker.com/shots/garmond-and-zaza/",
      "title": "Garmond And Zaza",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/a6bd5277-c605-43c7-aa4c-d6166d74cfff.mp4\" class=\"glightbox-link\" aria-label=\"Garmond And Zaza\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/a6bd5277-c605-43c7-aa4c-d6166d74cfff.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/a6bd5277-c605-43c7-aa4c-d6166d74cfff.mp4\" type=\"video/mp4\"\u003eGarmond And Zaza\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eGarmond And Zaza\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Garmond And Zaza](https://dropper.waylonwalker.com/file/a6bd5277-c605-43c7-aa4c-d6166d74cfff.mp4)\n\n\u003e Garmond And Zaza\n",
      "summary": "Garmond And Zaza",
      "image": "https://dropper.waylonwalker.com/file/a6bd5277-c605-43c7-aa4c-d6166d74cfff.mp4",
      "date_published": "2025-12-25T09:50:44Z",
      "date_modified": "2025-12-25T09:50:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-898/",
      "url": "https://waylonwalker.com/thought-898/",
      "title": "💭 RAM Prices Are Getting Worse - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"R5B0fjG55Fw\" title=\"RAM Prices Are Getting Worse\" playlabel=\"Play: RAM Prices Are Getting Worse\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI actually like linus’s take here.  My parents dropped $4k (~$8k in todays money) on a computer when I was a kid, (which turned into something too $$ to let me touch at that point).  I played some educational games that no one else has heard of and I’ve long forgotten along with an early ciivilization game.  It was e-waste in 2 years we maybe kept it 5, and it was barely working.  Contrast this to my PC now I spent $2k on 3 years ago refurb from 2017, and it has no signs of age from me, does everything I need it to.  Ram crisis sucks, the outright reason behind it sucks.  But on the bright side you can still get a baller build for less than you could late 90s without inflation.  The industry is not there for consumers right now, we had better times, but its still not bad times.  Keep the hope alive that good times will come.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"R5B0fjG55Fw\" title=\"RAM Prices Are Getting Worse\" playlabel=\"Play: RAM Prices Are Getting Worse\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI actually like linus's take here.  My parents dropped $4k (~$8k in todays money) on a computer when I was a kid, (which turned into something too $$ to let me touch at that point).  I played some educational games that no one else has heard of and I've long forgotten along with an early ciivilization game.  It was e-waste in 2 years we maybe kept it 5, and it was barely working.  Contrast this to my PC now I spent $2k on 3 years ago refurb from 2017, and it has no signs of age from me, does everything I need it to.  Ram crisis sucks, the outright reason behind it sucks.  But on the bright side you can still get a baller build for less than you could late 90s without inflation.  The industry is not there for consumers right now, we had better times, but its still not bad times.  Keep the hope alive that good times will come.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=R5B0fjG55Fw",
      "date_published": "2025-12-24T02:34:55Z",
      "date_modified": "2025-12-24T02:34:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "pc",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-897/",
      "url": "https://waylonwalker.com/thought-897/",
      "title": "💭 Smartphones are black holes",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://kerkour.com/smartphones-blackhole\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://kerkour.com/icon-256.png\" alt=\"Smartphones are black holes — They can bend spacetime without you even realizing it. People often get offended when I tell them that I don\u0026amp;#39;t have a phone, thinking that I\u0026amp;#39;m lying and I just\" loading=\"lazy\"/ data-glightbox=\"description: Smartphones are black holes — They can bend spacetime without you even realizing it. People often get offended when I tell them that I don\u0026amp;#39;t have a phone, thinking that I\u0026amp;#39;m lying and I just\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSmartphones are black holes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThey can bend spacetime without you even realizing it. People often get offended when I tell them that I don\u0026amp;#39;t have a phone, thinking that I\u0026amp;#39;m lying and I just\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSylvain Kerkour · kerkour.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis sounds great…. I’m sick AF right now and dont want to do anything but watch YouTube, and let opencode do my work.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://kerkour.com/smartphones-blackhole\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://kerkour.com/icon-256.png\" alt=\"Smartphones are black holes — They can bend spacetime without you even realizing it. People often get offended when I tell them that I don\u0026amp;#39;t have a phone, thinking that I\u0026amp;#39;m lying and I just\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSmartphones are black holes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThey can bend spacetime without you even realizing it. People often get offended when I tell them that I don\u0026amp;#39;t have a phone, thinking that I\u0026amp;#39;m lying and I just\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSylvain Kerkour \u0026middot; kerkour.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis sounds great.... I'm sick AF right now and dont want to do anything but watch YouTube, and let opencode do my work.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://kerkour.com/smartphones-blackhole",
      "date_published": "2025-12-24T02:29:01Z",
      "date_modified": "2025-12-24T02:29:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "social-media",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/simon-says-bell-ending/",
      "url": "https://waylonwalker.com/shots/simon-says-bell-ending/",
      "title": "Simon Says Bell Ending",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e90ea894-c7d6-4025-b916-0b0b264b30ec.mp4\" class=\"glightbox-link\" aria-label=\"Simon Says Bell Ending\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/e90ea894-c7d6-4025-b916-0b0b264b30ec.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/e90ea894-c7d6-4025-b916-0b0b264b30ec.mp4\" type=\"video/mp4\"\u003eSimon Says Bell Ending\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSimon Says Bell Ending\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Simon Says Bell Ending](https://dropper.waylonwalker.com/file/e90ea894-c7d6-4025-b916-0b0b264b30ec.mp4)\n\n\u003e Simon Says Bell Ending\n",
      "summary": "Simon Says Bell Ending",
      "image": "https://dropper.waylonwalker.com/file/e90ea894-c7d6-4025-b916-0b0b264b30ec.mp4",
      "date_published": "2025-12-23T18:59:11Z",
      "date_modified": "2025-12-23T18:59:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/simon-says-bell/",
      "url": "https://waylonwalker.com/shots/simon-says-bell/",
      "title": "Simon Says Bell",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/fdfd27ba-bfc3-4134-994f-91d034b6a0be.mp4\" class=\"glightbox-link\" aria-label=\"Simon Says Bell\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/fdfd27ba-bfc3-4134-994f-91d034b6a0be.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/fdfd27ba-bfc3-4134-994f-91d034b6a0be.mp4\" type=\"video/mp4\"\u003eSimon Says Bell\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSimon Says Bell\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Simon Says Bell](https://dropper.waylonwalker.com/file/fdfd27ba-bfc3-4134-994f-91d034b6a0be.mp4)\n\n\u003e Simon Says Bell\n",
      "summary": "Simon Says Bell",
      "image": "https://dropper.waylonwalker.com/file/fdfd27ba-bfc3-4134-994f-91d034b6a0be.mp4",
      "date_published": "2025-12-23T18:58:08Z",
      "date_modified": "2025-12-23T18:58:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/jdx-usage/",
      "url": "https://waylonwalker.com/jdx-usage/",
      "title": "⭐ jdx usage",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/jdx/usage\" 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\"\u003eusage\u003c/a\u003e by \u003ca href=\"https://github.com/jdx\" 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\"\u003ejdx\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA specification for CLIs\u003c/p\u003e\n",
      "content_text": "\nThe work on [usage](https://github.com/jdx/usage) by [jdx](https://github.com/jdx).\n\nA specification for CLIs\n",
      "summary": "The work on usage by jdx.",
      "date_published": "2025-12-22T16:42:40Z",
      "date_modified": "2025-12-22T16:42:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/jdx-pitchfork/",
      "url": "https://waylonwalker.com/jdx-pitchfork/",
      "title": "⭐ jdx pitchfork",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/jdx/pitchfork\" 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\"\u003epitchfork\u003c/a\u003e from \u003ca href=\"https://github.com/jdx\" 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\"\u003ejdx\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eDaemons with DX\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [pitchfork](https://github.com/jdx/pitchfork) from [jdx](https://github.com/jdx).\n\nDaemons with DX\n",
      "summary": "I'm impressed by pitchfork from jdx.",
      "date_published": "2025-12-22T16:42:37Z",
      "date_modified": "2025-12-22T16:42:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-896/",
      "url": "https://waylonwalker.com/thought-896/",
      "title": "💭 Using stderr/stdout correctly - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"XDAfpzjBYJQ\" title=\"Jeff Dickey - Mise, Usage, and Pitchfork and the Future of Polyglot Tools\" playlabel=\"Play: Jeff Dickey - Mise, Usage, and Pitchfork and the Future of Polyglot Tools\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYeah there’s some basics, you know things you might expect like using standard error and standard out correctly. One thing I’ll say on that because I think this is commonly misunderstood, standard error is not for errors, it’s for any information that isn’t part of the normal output. So you know often times that’s warnings and errors, but it might just be progress information. You know anytime that you just need to have something go to the user that’s what it’s there for.\u0026#34; (6:15 - 6:42)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI’ve definitely done this sin in my own tooling before, and it does make things harder to use.  I think I still take err/out at face value.  I really like the translation Jeff gave here, one is for normal output, i.e. what the user asked for and the other is extra information.  So if I wanted to list something and pipe it into something else, stdout only captures the list, thats it.  if you have a bunch of information about config warnings, showing environment, are you sure questions, none of that is captured.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"XDAfpzjBYJQ\" title=\"Jeff Dickey - Mise, Usage, and Pitchfork and the Future of Polyglot Tools\" playlabel=\"Play: Jeff Dickey - Mise, Usage, and Pitchfork and the Future of Polyglot Tools\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003e Yeah there's some basics, you know things you might expect like using standard error and standard out correctly. One thing I'll say on that because I think this is commonly misunderstood, standard error is not for errors, it's for any information that isn't part of the normal output. So you know often times that's warnings and errors, but it might just be progress information. You know anytime that you just need to have something go to the user that's what it's there for.\" (6:15 - 6:42)\n\nI've definitely done this sin in my own tooling before, and it does make things harder to use.  I think I still take err/out at face value.  I really like the translation Jeff gave here, one is for normal output, i.e. what the user asked for and the other is extra information.  So if I wanted to list something and pipe it into something else, stdout only captures the list, thats it.  if you have a bunch of information about config warnings, showing environment, are you sure questions, none of that is captured.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/XDAfpzjBYJQ?t=353",
      "date_published": "2025-12-22T15:35:30Z",
      "date_modified": "2025-12-22T15:35:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/big-slow-diskcache/",
      "url": "https://waylonwalker.com/big-slow-diskcache/",
      "title": "big slow diskcache",
      "content_text": "\n",
      "date_published": "2025-12-22T14:12:26Z",
      "date_modified": "2025-12-22T14:12:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/codeium-is-cooked/",
      "url": "https://waylonwalker.com/shots/codeium-is-cooked/",
      "title": "Codeium Is Cooked",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/1a0b746e-091f-47b5-b4d3-b931f43da801.webp\" class=\"glightbox-link\" aria-label=\"codeium is cooked\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/1a0b746e-091f-47b5-b4d3-b931f43da801.webp\" alt=\"codeium is cooked\"/ data-glightbox=\"description: codeium is cooked\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCodeium what are you doing?  It’s spamming I’m a little bit of a nerd in the completion.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![codeium is cooked](https://dropper.waylonwalker.com/file/1a0b746e-091f-47b5-b4d3-b931f43da801.webp)\n\n\u003e Codeium what are you doing?  It's spamming I'm a little bit of a nerd in the completion.\n\n",
      "summary": "Codeium what are you doing? It's spamming I'm a little bit of a nerd in the completion.",
      "image": "https://dropper.waylonwalker.com/file/1a0b746e-091f-47b5-b4d3-b931f43da801.webp",
      "date_published": "2025-12-22T10:13:08Z",
      "date_modified": "2025-12-22T10:13:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/youtube-gemini-is-actually-useful/",
      "url": "https://waylonwalker.com/youtube-gemini-is-actually-useful/",
      "title": "YouTube Gemini is Actually Useful",
      "content_html": "\u003cp\u003eI’ve found Gemini to be very useful lately, especially for finding information\nwithin long form content.\u003c/p\u003e\n\u003cp\u003eWhen writing \u003ca href=\"https://thoughts.waylonwalker.com/post/896\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethought-896\u003c/a\u003e, I\nwanted to use a direct quote from Jeff Dickey, Gemini popped it out very\nquickly.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egive me a quote from jeff just before the timestamp I\u0026#39;m at the interviewer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003easked what makes a good cli and he started talking about stdout/stderr\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIn another case, my wife and I are huge Good Eats fans.  Alton Brown taught us\nhow to cook during college and on.  We watched every single good eats episode\nnearly 10 years after they aired.  He is back with some updates to those those\nshows on his Youtube.  Gemini gives very good detailed responses with\ntimestamps.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAlton Brown had a recent YouTube video for cooking turkey. Can you get the\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einstructions from the video?\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've found Gemini to be very useful lately, especially for finding information\nwithin long form content.\n\nWhen writing [thought-896](https://thoughts.waylonwalker.com/post/896), I\nwanted to use a direct quote from Jeff Dickey, Gemini popped it out very\nquickly.\n\n``` md\ngive me a quote from jeff just before the timestamp I'm at the interviewer\nasked what makes a good cli and he started talking about stdout/stderr\n```\n\nIn another case, my wife and I are huge Good Eats fans.  Alton Brown taught us\nhow to cook during college and on.  We watched every single good eats episode\nnearly 10 years after they aired.  He is back with some updates to those those\nshows on his Youtube.  Gemini gives very good detailed responses with\ntimestamps.\n\n``` md\nAlton Brown had a recent YouTube video for cooking turkey. Can you get the\ninstructions from the video?\n```\n\n",
      "summary": "I've found Gemini to be very useful lately, especially for finding information within long form content.",
      "date_published": "2025-12-22T10:09:55Z",
      "date_modified": "2025-12-22T10:09:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-15/",
      "url": "https://waylonwalker.com/ping-15/",
      "title": "Ping 15",
      "content_html": "\u003cp\u003e\u003ca href=\"https://mise.jdx.dev/getting-started.html\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mise.jdx.dev.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mise.jdx.dev.png\" class=\"has-avatar  has-avatar-before\"\u003emise\u003c/a\u003e looks like what I wanted nix to be for me.\u003c/p\u003e\n",
      "content_text": "\n[mise](https://mise.jdx.dev/getting-started.html) looks like what I wanted nix to be for me.\n",
      "summary": "mise looks like what I wanted nix to be for me.",
      "date_published": "2025-12-22T08:55:20Z",
      "date_modified": "2025-12-22T08:55:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping",
        "terminal"
      ]
    },
    {
      "id": "https://waylonwalker.com/jdx-mise/",
      "url": "https://waylonwalker.com/jdx-mise/",
      "title": "⭐ jdx mise",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/jdx/mise\" 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\"\u003emise\u003c/a\u003e by \u003ca href=\"https://github.com/jdx\" 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\"\u003ejdx\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003edev tools, env vars, task runner\u003c/p\u003e\n",
      "content_text": "\nThe work on [mise](https://github.com/jdx/mise) by [jdx](https://github.com/jdx).\n\ndev tools, env vars, task runner\n",
      "summary": "The work on mise by jdx.",
      "date_published": "2025-12-21T16:18:10Z",
      "date_modified": "2025-12-21T16:18:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-14/",
      "url": "https://waylonwalker.com/ping-14/",
      "title": "Mise looks promising",
      "content_html": "\u003cp\u003eI’ve been all in on just for a while now, but mise looks so good it might\nbe my next move.\u003c/p\u003e\n",
      "content_text": "\nI've been all in on just for a while now, but mise looks so good it might\nbe my next move.\n",
      "summary": "I've been all in on just for a while now, but mise looks so good it might be my next move.",
      "date_published": "2025-12-21T10:52:57Z",
      "date_modified": "2025-12-21T10:52:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping",
        "terminal"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/phantom-end/",
      "url": "https://waylonwalker.com/shots/phantom-end/",
      "title": "Phantom End",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/ec9d19ec-68b9-4b2f-ae6b-fee1559b384a.mp4\" class=\"glightbox-link\" aria-label=\"Phantom End\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/ec9d19ec-68b9-4b2f-ae6b-fee1559b384a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/ec9d19ec-68b9-4b2f-ae6b-fee1559b384a.mp4\" type=\"video/mp4\"\u003ePhantom End\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePhantom End\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Phantom End](https://dropper.waylonwalker.com/file/ec9d19ec-68b9-4b2f-ae6b-fee1559b384a.mp4)\n\n\u003e Phantom End\n",
      "summary": "Phantom End",
      "image": "https://dropper.waylonwalker.com/file/ec9d19ec-68b9-4b2f-ae6b-fee1559b384a.mp4",
      "date_published": "2025-12-21T09:35:34Z",
      "date_modified": "2025-12-21T09:35:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/phantom-fight/",
      "url": "https://waylonwalker.com/shots/phantom-fight/",
      "title": "Phantom Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/16a4dfa0-38a1-4ed9-843a-c0077e7e7e75.mp4\" class=\"glightbox-link\" aria-label=\"Phantom Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/16a4dfa0-38a1-4ed9-843a-c0077e7e7e75.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/16a4dfa0-38a1-4ed9-843a-c0077e7e7e75.mp4\" type=\"video/mp4\"\u003ePhantom Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePhantom Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Phantom Fight](https://dropper.waylonwalker.com/file/16a4dfa0-38a1-4ed9-843a-c0077e7e7e75.mp4)\n\n\u003e Phantom Fight\n",
      "summary": "Phantom Fight",
      "image": "https://dropper.waylonwalker.com/file/16a4dfa0-38a1-4ed9-843a-c0077e7e7e75.mp4",
      "date_published": "2025-12-21T09:33:48Z",
      "date_modified": "2025-12-21T09:33:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/phantom/",
      "url": "https://waylonwalker.com/shots/phantom/",
      "title": "Phantom",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/71d8ce54-c5cd-4101-ad36-80a8ccf4adf9.mp4\" class=\"glightbox-link\" aria-label=\"Phantom\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/71d8ce54-c5cd-4101-ad36-80a8ccf4adf9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/71d8ce54-c5cd-4101-ad36-80a8ccf4adf9.mp4\" type=\"video/mp4\"\u003ePhantom\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePhantom\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Phantom](https://dropper.waylonwalker.com/file/71d8ce54-c5cd-4101-ad36-80a8ccf4adf9.mp4)\n\n\u003e Phantom\n",
      "summary": "Phantom",
      "image": "https://dropper.waylonwalker.com/file/71d8ce54-c5cd-4101-ad36-80a8ccf4adf9.mp4",
      "date_published": "2025-12-21T09:31:50Z",
      "date_modified": "2025-12-21T09:31:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/maxteabag-sqlit/",
      "url": "https://waylonwalker.com/maxteabag-sqlit/",
      "title": "⭐ Maxteabag sqlit",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/Maxteabag\" 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\"\u003eMaxteabag\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/Maxteabag/sqlit\" 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\"\u003esqlit\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eA user friendly TUI for SQL databases. Written in python. Supports SQL server, Mysql, PostreSQL and SQLite, Turso and more.\u003c/p\u003e\n",
      "content_text": "\n[Maxteabag](https://github.com/Maxteabag) has done a fantastic job with [sqlit](https://github.com/Maxteabag/sqlit). Highly recommend taking a look.\n\nA user friendly TUI for SQL databases. Written in python. Supports SQL server, Mysql, PostreSQL and SQLite, Turso and more.\n",
      "summary": "Maxteabag has done a fantastic job with sqlit. Highly recommend taking a look.",
      "date_published": "2025-12-21T05:47:39Z",
      "date_modified": "2025-12-21T05:47:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/webinstall-webi-installers/",
      "url": "https://waylonwalker.com/webinstall-webi-installers/",
      "title": "⭐ webinstall webi-installers",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/webinstall/webi-installers\" 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\"\u003ewebi-installers\u003c/a\u003e by \u003ca href=\"https://github.com/webinstall\" 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\"\u003ewebinstall\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003ePrimary and community-submitted packages for webinstall.dev\u003c/p\u003e\n",
      "content_text": "\n[webi-installers](https://github.com/webinstall/webi-installers) by [webinstall](https://github.com/webinstall) is a game-changer in its space. Excited to see how it evolves.\n\nPrimary and community-submitted packages for webinstall.dev\n",
      "summary": "webi-installers by webinstall is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-12-20T19:52:27Z",
      "date_modified": "2025-12-20T19:52:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/fixing-the-marquee-for-jolly-holiday/",
      "url": "https://waylonwalker.com/shots/fixing-the-marquee-for-jolly-holiday/",
      "title": "Fixing The Marquee For Jolly Holiday",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp\" class=\"glightbox-link\" aria-label=\"Fixing the Marquee for Jolly Holiday\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp\" alt=\"Fixing the Marquee for Jolly Holiday\"/ data-glightbox=\"description: Fixing the Marquee for Jolly Holiday\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWaylon up at the Marquee of the theater fixing the fallen letters before the night show.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Fixing the Marquee for Jolly Holiday](https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp)\n\n\u003e Waylon up at the Marquee of the theater fixing the fallen letters before the night show.\n\n",
      "summary": "Waylon up at the Marquee of the theater fixing the fallen letters before the night show.",
      "image": "https://dropper.waylonwalker.com/file/48e6a2ef-a4db-462e-acda-16b270e7053d.webp",
      "date_published": "2025-12-20T18:06:34Z",
      "date_modified": "2025-12-20T18:06:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-895/",
      "url": "https://waylonwalker.com/thought-895/",
      "title": "💭 You Might Also Like: My Notes Blog - Jim Nielsen’s Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/you-might-also-like-my-notes-blog/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYou Might Also Like: My Notes Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI really like a good link blog, it’s the old timers version of a reaction video.  It gives me new posts to discover from other writers, and gives additional perspectives from ones I trust enough to add to my RSS.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt’s nice to have a place where I can jot down a few notes, fire off my reaction, and nobody can respond to it lol. At least, not in any easy, friction-less way. You’d have to go out of your way to read my commentary, find my contact info, and fire off a message (critiquing or praising). That’s how I like it. Cuts through the noise.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eDitto Jim.  I’ve oddly found mine more useful to search than blog posts, zettlekaten, notes, whatever you want to call them.  For me writing something down makes it more concrete in my brain that I’m less likely to need to go reference, but I often need to re read or references posts from others, this is where \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e comes in handy for me\u003c/p\u003e\n\u003cp\u003eLike Jim I have a bunch of \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 you can subscribe to if you want some or all of my stuff, but I aggregate everything to the same root site.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/you-might-also-like-my-notes-blog/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYou Might Also Like: My Notes Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI really like a good link blog, it's the old timers version of a reaction video.  It gives me new posts to discover from other writers, and gives additional perspectives from ones I trust enough to add to my RSS.\n\n\u003e It’s nice to have a place where I can jot down a few notes, fire off my reaction, and nobody can respond to it lol. At least, not in any easy, friction-less way. You’d have to go out of your way to read my commentary, find my contact info, and fire off a message (critiquing or praising). That’s how I like it. Cuts through the noise.\n\nDitto Jim.  I've oddly found mine more useful to search than blog posts, zettlekaten, notes, whatever you want to call them.  For me writing something down makes it more concrete in my brain that I'm less likely to need to go reference, but I often need to re read or references posts from others, this is where \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e comes in handy for me \n\nLike Jim I have a bunch of \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 you can subscribe to if you want some or all of my stuff, but I aggregate everything to the same root site.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/2025/you-might-also-like-my-notes-blog/",
      "date_published": "2025-12-19T16:11:31Z",
      "date_modified": "2025-12-19T16:11:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-13/",
      "url": "https://waylonwalker.com/ping-13/",
      "title": "Gross phone",
      "content_html": "\u003cp\u003eIs there a world that giving my phone to my kids does not result in it being\ncovered in peanut butter and snot?\u003c/p\u003e\n",
      "content_text": "\nIs there a world that giving my phone to my kids does not result in it being\ncovered in peanut butter and snot?\n",
      "summary": "Is there a world that giving my phone to my kids does not result in it being covered in peanut butter and snot?",
      "date_published": "2025-12-19T09:51:00Z",
      "date_modified": "2025-12-19T09:51:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "parenthood",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/developer-vs-artist-ai/",
      "url": "https://waylonwalker.com/developer-vs-artist-ai/",
      "title": "Developer Vs Artist Ai",
      "content_html": "\u003cp\u003eThe other day I was watching [thePrimeTimeagen]https://youtube.com/@theprimetimeagen?si=jVcp23FbfQSFZfDc) and he talked about devs loving ai and artists revolting.  There was some discussion in chat about art being more creative and prime quickly squashed that.  He ended with being oddly confused why developers are jumping on board and artists are not.  Both had their art stolen to build out the models.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e0f9e8bf-bc51-415c-ad25-6f2cd473e6d0.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/e0f9e8bf-bc51-415c-ad25-6f2cd473e6d0.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003emy own vibes\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eI\u0026#39;m writing this from my phone without further research, all vibes, personal experience, and thoughts,  no research.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"good-tools\"\u003eGood Tools \u003ca href=\"#good-tools\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst I want to argue that artists have had some form of ai in their tools for years.  Idk, probably not ai as we know it today but functionally similar.  Content aware fill.  This is a Photoshop feature from Adobe, as far as I know it’s one of the special things you get from Adobe that you don’t get from the FOSS alternatives easily.\u003c/p\u003e\n\u003cp\u003eThis is an example of a good took that is well loves by the community and widely used, if you put ai in it to make it better no one would care, if it made things look oddly ai it would get rejected.\u003c/p\u003e\n\u003ch2 id=\"taking-the-brush\"\u003etaking the brush \u003ca href=\"#taking-the-brush\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is the critical difference that I see between the communities.  Software development has made great tools for itself in a wide spectrum, from hands off vibe code no code to better auto complete.  There’s something for everyone and every situation.  This feels very obvious the minute you try to look at how to do it.  In fact we started with better autocomplete.  This autocomplete is really good at recognizing patterns in your document and continuing your current thought for you.\u003c/p\u003e\n\u003cp\u003eArt is a complete 180.  It started with prompt engineering.  Hands off let the tool do everything, you do nothing but prompt it.  If it’s wrong reprompt.  Diffusion is the worst because it generates completely new results every time nothing like what you had before.  The newer stuff from openai and nano banana are not diffusion and do much better text and edits, but it’s not the same.\u003c/p\u003e\n\u003ch2 id=\"hands-off-is-frustrating\"\u003ehands off is frustrating \u003ca href=\"#hands-off-is-frustrating\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnyone who has tried to get something specific from ai art or code gen without touching it themselves knows the frustration that you ask it to do one thing that takes 3 prompts to get it to understand what your asking and by the time it’s right it’s wrecked something else.  It’s not fun, it’s soul sucking and ripe for meme content.\u003c/p\u003e\n\u003ch2 id=\"freedom-of-expression\"\u003efreedom of expression \u003ca href=\"#freedom-of-expression\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSoftware development has made a really good effort to make really great tools for itself.  We have a wide spectrum that allow you to prototype fast, get something complex working in hours not month, but riddles with issues.  Allowing us to get better scoped work from PMs who have put their hands on a semi working prototype.  We have the ability to slice out parts and refactor with ease, and when things really matter we can right the code ourselves with ai there to take away the boilerplate repetition that finds it’s way into some modules.\u003c/p\u003e\n\u003cp\u003eI’m sure there is better ai art tools out there that allow artists to keep their brush in hand and enhance their skills, but I have not seen them.  Ive seen in painting, but its not discoverable as it’s first experience, is hard to setup, might cost a lot, and doesn’t quite fit in to where you work with it.  It’s still all or nothing prompt engineering, just a bit more focused in.\u003c/p\u003e\n\u003ch2 id=\"ai-video\"\u003eai video \u003ca href=\"#ai-video\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI haven’t even thought much about things like sora throughout this.  I can say for sure I’m enjoying editors for small time creators having the ability to throw in short clips to enhance the story.  Especially for story telling style content that is impossible to get real video of, and would cost a fortune to build set, costume, and cast.  It makes no sense for this scale.  The McDonald’s and coke videos im on the fence on.  They seem \u003cem\u003efine\u003c/em\u003e, they don’t feel inspiring, great, or terrible to me.\u003c/p\u003e\n\u003ch2 id=\"fin\"\u003efin \u003ca href=\"#fin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDevelopers naturally started with great tools here, and artist were given tools for developers to do art with, nothing tools for them.\u003c/p\u003e\n\u003cp\u003ePlease tell me I’m wrong, artists have great tools you just haven’t seen them.  I’d love to be wrong.\u003c/p\u003e\n",
      "content_text": "The other day I was watching [thePrimeTimeagen]https://youtube.com/@theprimetimeagen?si=jVcp23FbfQSFZfDc) and he talked about devs loving ai and artists revolting.  There was some discussion in chat about art being more creative and prime quickly squashed that.  He ended with being oddly confused why developers are jumping on board and artists are not.  Both had their art stolen to build out the models.\n\n![](https://dropper.waylonwalker.com/file/e0f9e8bf-bc51-415c-ad25-6f2cd473e6d0.webp)\n\n!!! Note my own vibes\n    I'm writing this from my phone without further research, all vibes, personal experience, and thoughts,  no research.\n\n## Good Tools\n\nFirst I want to argue that artists have had some form of ai in their tools for years.  Idk, probably not ai as we know it today but functionally similar.  Content aware fill.  This is a Photoshop feature from Adobe, as far as I know it's one of the special things you get from Adobe that you don't get from the FOSS alternatives easily.\n\nThis is an example of a good took that is well loves by the community and widely used, if you put ai in it to make it better no one would care, if it made things look oddly ai it would get rejected.\n\n## taking the brush\n\nHere is the critical difference that I see between the communities.  Software development has made great tools for itself in a wide spectrum, from hands off vibe code no code to better auto complete.  There's something for everyone and every situation.  This feels very obvious the minute you try to look at how to do it.  In fact we started with better autocomplete.  This autocomplete is really good at recognizing patterns in your document and continuing your current thought for you.\n\nArt is a complete 180.  It started with prompt engineering.  Hands off let the tool do everything, you do nothing but prompt it.  If it's wrong reprompt.  Diffusion is the worst because it generates completely new results every time nothing like what you had before.  The newer stuff from openai and nano banana are not diffusion and do much better text and edits, but it's not the same.\n\n## hands off is frustrating \n\nAnyone who has tried to get something specific from ai art or code gen without touching it themselves knows the frustration that you ask it to do one thing that takes 3 prompts to get it to understand what your asking and by the time it's right it's wrecked something else.  It's not fun, it's soul sucking and ripe for meme content.\n\n## freedom of expression\n\nSoftware development has made a really good effort to make really great tools for itself.  We have a wide spectrum that allow you to prototype fast, get something complex working in hours not month, but riddles with issues.  Allowing us to get better scoped work from PMs who have put their hands on a semi working prototype.  We have the ability to slice out parts and refactor with ease, and when things really matter we can right the code ourselves with ai there to take away the boilerplate repetition that finds it's way into some modules.\n\nI'm sure there is better ai art tools out there that allow artists to keep their brush in hand and enhance their skills, but I have not seen them.  Ive seen in painting, but its not discoverable as it's first experience, is hard to setup, might cost a lot, and doesn't quite fit in to where you work with it.  It's still all or nothing prompt engineering, just a bit more focused in.\n\n## ai video\n\nI haven't even thought much about things like sora throughout this.  I can say for sure I'm enjoying editors for small time creators having the ability to throw in short clips to enhance the story.  Especially for story telling style content that is impossible to get real video of, and would cost a fortune to build set, costume, and cast.  It makes no sense for this scale.  The McDonald's and coke videos im on the fence on.  They seem _fine_, they don't feel inspiring, great, or terrible to me.\n\n## fin\n\nDevelopers naturally started with great tools here, and artist were given tools for developers to do art with, nothing tools for them.\n\nPlease tell me I'm wrong, artists have great tools you just haven't seen them.  I'd love to be wrong.\n",
      "summary": "The other day I was watching [thePrimeTimeagen]https://youtube.com/@theprimetimeagen?si=jVcp23FbfQSFZfDc) and he talked about devs loving ai and artists...",
      "date_published": "2025-12-19T09:44:00Z",
      "date_modified": "2025-12-19T09:44:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai"
      ]
    },
    {
      "id": "https://waylonwalker.com/nginx-accepts-markdown/",
      "url": "https://waylonwalker.com/nginx-accepts-markdown/",
      "title": "nginx accepts markdown",
      "content_text": "\n",
      "date_published": "2025-12-18T15:31:49Z",
      "date_modified": "2025-12-18T15:31:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-894/",
      "url": "https://waylonwalker.com/thought-894/",
      "title": "💭 “You should never build a CMS” | Sanity",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.sanity.io/blog/you-should-never-build-a-cms\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.sanity.io/static/images/opengraph/social.png\" alt=\"“You should never build a CMS” | Sanity — Lee Robinson migrated cursor.com off Sanity. He made good points. Here\u0026#39;s what he missed.\" loading=\"lazy\"/ data-glightbox=\"description: “You should never build a CMS” | Sanity — Lee Robinson migrated cursor.com off Sanity. He made good points. Here\u0026#39;s what he missed.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e“You should never build a CMS” | Sanity\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLee Robinson migrated cursor.com off Sanity. He made good points. Here\u0026#39;s what he missed.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSanity.io · sanity.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSuch a good breakdown of the leerob article, that is hitting everywhere right now.  Feels like sanity was just a bit late to getting things right and it would have just worked for them how leerob was trying to use it, but MCP sucked so he jumped.\u003c/p\u003e\n\u003cp\u003eReading their loose descriptions of a CMS, its an interesting realization to realize I’m rolling my own cms.  I kinda feel like theres a few inspiration features to take from here, but I have no regrets.  As a developer I like being able to build my own tools, I like being able to search and edit from nvim, and not have to write GROQ queries, and transforms.  There were some really good points here that as I get more and more content on my personal site, I do kinda feel it.  I’m surprised there is not more tooling that does some of these things for piles of markdown.\u003c/p\u003e\n\u003cp\u003epinning this to re-read later, feels like a lot of good tidbits here.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.sanity.io/blog/you-should-never-build-a-cms\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.sanity.io/static/images/opengraph/social.png\" alt=\"“You should never build a CMS” | Sanity — Lee Robinson migrated cursor.com off Sanity. He made good points. Here\u0026#39;s what he missed.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e“You should never build a CMS” | Sanity\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLee Robinson migrated cursor.com off Sanity. He made good points. Here\u0026#39;s what he missed.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSanity.io \u0026middot; sanity.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSuch a good breakdown of the leerob article, that is hitting everywhere right now.  Feels like sanity was just a bit late to getting things right and it would have just worked for them how leerob was trying to use it, but MCP sucked so he jumped.\n\nReading their loose descriptions of a CMS, its an interesting realization to realize I'm rolling my own cms.  I kinda feel like theres a few inspiration features to take from here, but I have no regrets.  As a developer I like being able to build my own tools, I like being able to search and edit from nvim, and not have to write GROQ queries, and transforms.  There were some really good points here that as I get more and more content on my personal site, I do kinda feel it.  I'm surprised there is not more tooling that does some of these things for piles of markdown.\n\npinning this to re-read later, feels like a lot of good tidbits here.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.sanity.io/blog/you-should-never-build-a-cms",
      "date_published": "2025-12-17T15:21:41Z",
      "date_modified": "2025-12-17T15:21:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "cms",
        "dev",
        "later",
        "markdown",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-893/",
      "url": "https://waylonwalker.com/thought-893/",
      "title": "💭 The Github Tax (I can't believe they actually did this...) - Y...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"xTSar1SEmIU\" title=\"The Github Tax (I can\u0026#39;t believe they actually did this...)\" playlabel=\"Play: The Github Tax (I can\u0026#39;t believe they actually did this...)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eIt really feels like M$ is coming down hard on GH lately to make some unfavorable decisions for users.  Maybe there is good reason for all of these changes from a business perspective, I can’t judge that.  But right now there are some really great alternatives out there.  I’m so grateful for what forgejo and gittea offer, and at the same time seeing the community get split up from GH is sad.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"xTSar1SEmIU\" title=\"The Github Tax (I can\u0026#39;t believe they actually did this...)\" playlabel=\"Play: The Github Tax (I can\u0026#39;t believe they actually did this...)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nIt really feels like M$ is coming down hard on GH lately to make some unfavorable decisions for users.  Maybe there is good reason for all of these changes from a business perspective, I can't judge that.  But right now there are some really great alternatives out there.  I'm so grateful for what forgejo and gittea offer, and at the same time seeing the community get split up from GH is sad.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=xTSar1SEmIU",
      "date_published": "2025-12-17T15:04:09Z",
      "date_modified": "2025-12-17T15:04:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-12/",
      "url": "https://waylonwalker.com/ping-12/",
      "title": "Ping 12",
      "content_html": "\u003cp\u003eIs \u003ccode\u003ebet\u003c/code\u003e new teen lingo?  My kid is starting to say \u003cem\u003ebet\u003c/em\u003e in every sentence.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSo he explained it as “I’m down”, “You bet”, “Yes”, “I like that”, “You betcha”\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nIs `bet` new teen lingo?  My kid is starting to say _bet_ in every sentence.\n\n\u003e So he explained it as \"I'm down\", \"You bet\", \"Yes\", \"I like that\", \"You betcha\"\n",
      "summary": "Is new teen lingo? My kid is starting to say _ in every sentence.",
      "date_published": "2025-12-16T11:44:47Z",
      "date_modified": "2025-12-16T11:44:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "parenthood",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/ping-11/",
      "url": "https://waylonwalker.com/ping-11/",
      "title": "Ping 11",
      "content_html": "\u003cp\u003eNaming things is hard, pings will now be numbered.\u003c/p\u003e\n",
      "content_text": "\nNaming things is hard, pings will now be numbered.\n",
      "summary": "Naming things is hard, pings will now be numbered.",
      "date_published": "2025-12-16T08:11:43Z",
      "date_modified": "2025-12-16T08:11:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "meta",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-892/",
      "url": "https://waylonwalker.com/thought-892/",
      "title": "💭 Hollow Knight: Silksong - Sea of Sorrow Teaser",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"qDFEeeLy6ws\" title=\"Hollow Knight: Silksong - Sea of Sorrow Teaser\" playlabel=\"Play: Hollow Knight: Silksong - Sea of Sorrow Teaser\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eSilksong DLC announcement already, we waited 8 years for the game, and are getting DLC’s months after launch.  Dudes I haven’t even finished the game get, maybe not even half way.  It’s amazing.  Its amazing that these three make such a kick ass game with great art, story, voice, gameplay, and now drop a free dlc in 2026.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"qDFEeeLy6ws\" title=\"Hollow Knight: Silksong - Sea of Sorrow Teaser\" playlabel=\"Play: Hollow Knight: Silksong - Sea of Sorrow Teaser\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nSilksong DLC announcement already, we waited 8 years for the game, and are getting DLC's months after launch.  Dudes I haven't even finished the game get, maybe not even half way.  It's amazing.  Its amazing that these three make such a kick ass game with great art, story, voice, gameplay, and now drop a free dlc in 2026.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=qDFEeeLy6ws",
      "date_published": "2025-12-16T04:28:37Z",
      "date_modified": "2025-12-16T04:28:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/i-m-being-gaslit-by-the-ai/",
      "url": "https://waylonwalker.com/i-m-being-gaslit-by-the-ai/",
      "title": "I'm being gaslit by the ai",
      "content_html": "\u003cp\u003eI’m being gaslit by the ai.  It just did a big hard change, now cant do a seemingly basic change, and assures me that that its fixed my issue on every iteration.\u003c/p\u003e\n",
      "content_text": "\nI'm being gaslit by the ai.  It just did a big hard change, now cant do a seemingly basic change, and assures me that that its fixed my issue on every iteration.\n",
      "summary": "I'm being gaslit by the ai. It just did a big hard change, now cant do a seemingly basic change, and assures me that that its fixed my issue on every iteration.",
      "date_published": "2025-12-15T16:16:12Z",
      "date_modified": "2025-12-15T16:16:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/finished-elf-house/",
      "url": "https://waylonwalker.com/shots/finished-elf-house/",
      "title": "Finished Elf House",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp\" class=\"glightbox-link\" aria-label=\"Finished Elf House\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp\" alt=\"Finished Elf House\"/ data-glightbox=\"description: Finished Elf House\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWaylon and Rhiannon standing in front of a mostly finished elf house built for the Jolly Holiday Performance at the local theater.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Finished Elf House](https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp)\n\n\u003e Waylon and Rhiannon standing in front of a mostly finished elf house built for the Jolly Holiday Performance at the local theater.\n\n",
      "summary": "Waylon and Rhiannon standing in front of a mostly finished elf house built for the Jolly Holiday Performance at the local theater.",
      "image": "https://dropper.waylonwalker.com/file/f34e94d4-c6d4-4a89-96f7-14f67c954307.webp",
      "date_published": "2025-12-14T13:27:43Z",
      "date_modified": "2025-12-14T13:27:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cogwork-saved-pill/",
      "url": "https://waylonwalker.com/shots/cogwork-saved-pill/",
      "title": "Cogwork Saved Pill",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/080351b9-a5f9-4103-b5c8-fbcbe1e0b2b7.mp4\" class=\"glightbox-link\" aria-label=\"Cogwork Saved Pill\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/080351b9-a5f9-4103-b5c8-fbcbe1e0b2b7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/080351b9-a5f9-4103-b5c8-fbcbe1e0b2b7.mp4\" type=\"video/mp4\"\u003eCogwork Saved Pill\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCogwork Saved Pill\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Cogwork Saved Pill](https://dropper.waylonwalker.com/file/080351b9-a5f9-4103-b5c8-fbcbe1e0b2b7.mp4)\n\n\u003e Cogwork Saved Pill\n",
      "summary": "Cogwork Saved Pill",
      "image": "https://dropper.waylonwalker.com/file/080351b9-a5f9-4103-b5c8-fbcbe1e0b2b7.mp4",
      "date_published": "2025-12-14T09:26:19Z",
      "date_modified": "2025-12-14T09:26:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/numbered-posts-in-obsidian/",
      "url": "https://waylonwalker.com/numbered-posts-in-obsidian/",
      "title": "numbered posts in obsidian",
      "content_html": "\u003cp\u003eI’ve been using this one for awhile now, I have a post type that I only edit\nfrom my phone, but I have all the post numbered.  I set up a template in\nobsidian for using templater, the template goes right in the static site repo,\nI point templater to the templates directory and this has been working pretty\nseamlessly for awhile.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edate: \u0026lt;% tp.date.now(\u0026#34;YYYY-MM-DD HH:mm:ss\u0026#34;) %\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etemplateKey: myposttype\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epublished: true\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etags:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e myposttype\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u0026lt;%*\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econst folder = \u0026#34;pages/myposttype\u0026#34;;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e// get all files in the vault, keep only those inside the folder\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econst files = app.vault.getFiles().filter(f =\u0026gt; f.path.startsWith(folder + \u0026#34;/\u0026#34;));\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e// extract numeric suffixes from filenames like myposttype-123.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econst nums = files.map(f =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  const m = f.basename.match(/^myposttype-(\\d+)$/);\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  return m ? parseInt(m[1], 10) : null;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e}).filter(n =\u0026gt; n !== null);\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e// next number (start at 1 if none exist)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econst next = (nums.length ? Math.max(...nums) : 0) + 1;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e// include the .md extension when moving\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econst newPath = \u003cspan class=\"sb\"\u003e`${folder}/myposttype-${next}`\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eawait tp.file.move(newPath);\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e%\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've been using this one for awhile now, I have a post type that I only edit\nfrom my phone, but I have all the post numbered.  I set up a template in\nobsidian for using templater, the template goes right in the static site repo,\nI point templater to the templates directory and this has been working pretty\nseamlessly for awhile.\n\n``` md\n---\ndate: \u003c% tp.date.now(\"YYYY-MM-DD HH:mm:ss\") %\u003e\ntemplateKey: myposttype\npublished: true\ntags:\n- myposttype\n\u003c%*\nconst folder = \"pages/myposttype\";\n\n// get all files in the vault, keep only those inside the folder\nconst files = app.vault.getFiles().filter(f =\u003e f.path.startsWith(folder + \"/\"));\n\n// extract numeric suffixes from filenames like myposttype-123.md\nconst nums = files.map(f =\u003e {\n  const m = f.basename.match(/^myposttype-(\\d+)$/);\n  return m ? parseInt(m[1], 10) : null;\n}).filter(n =\u003e n !== null);\n\n// next number (start at 1 if none exist)\nconst next = (nums.length ? Math.max(...nums) : 0) + 1;\n\n// include the .md extension when moving\nconst newPath = `${folder}/myposttype-${next}`;\nawait tp.file.move(newPath);\n%\u003e\n---\n```\n",
      "summary": "I've been using this one for awhile now, I have a post type that I only edit from my phone, but I have all the post numbered. I set up a template in obsidian...",
      "date_published": "2025-12-13T22:28:28Z",
      "date_modified": "2025-12-13T22:28:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "markdown",
        "obsidian"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-891/",
      "url": "https://waylonwalker.com/thought-891/",
      "title": "💭 AI, DevOps, and Kubernetes: Kelsey Hightower on What’s Next - ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"HdUbTyvrfKo\" title=\"AI, DevOps, and Kubernetes: Kelsey Hightower on What’s Next\" playlabel=\"Play: AI, DevOps, and Kubernetes: Kelsey Hightower on What’s Next\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eKelsey has a really good lightbulb moment here about platform engineering.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e“if you had to do all the deployments for the entire company what questions would you ask of the development team?”\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThat’s your api, your platform, this is your product as a platform engineer.  It’s not images, docker, terraform, hcl, yaml, kubernetes, It’s building out the right api for your company to deploy its products effectively.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=HdUbTyvrfKo\u0026amp;t=429s\" 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\"\u003ehttps://www.youtube.com/watch?v=HdUbTyvrfKo\u0026amp;t=429s\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003etimestamped\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"HdUbTyvrfKo\" title=\"AI, DevOps, and Kubernetes: Kelsey Hightower on What’s Next\" playlabel=\"Play: AI, DevOps, and Kubernetes: Kelsey Hightower on What’s Next\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nKelsey has a really good lightbulb moment here about platform engineering.\n\n\u003e \"if you had to do all the deployments for the entire company what questions would you ask of the development team?\"\n\nThat's your api, your platform, this is your product as a platform engineer.  It's not images, docker, terraform, hcl, yaml, kubernetes, It's building out the right api for your company to deploy its products effectively.\n\nhttps://www.youtube.com/watch?v=HdUbTyvrfKo\u0026t=429s\n\n\u003e timestamped\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=HdUbTyvrfKo",
      "date_published": "2025-12-13T04:07:15Z",
      "date_modified": "2025-12-13T04:07:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/andrii-kryvoviaz-slink/",
      "url": "https://waylonwalker.com/andrii-kryvoviaz-slink/",
      "title": "⭐ andrii-kryvoviaz slink",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/andrii-kryvoviaz\" 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\"\u003eandrii-kryvoviaz\u003c/a\u003e and their project \u003ca href=\"https://github.com/andrii-kryvoviaz/slink\" 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\"\u003eslink\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eSelf-hosted\u003c/a\u003e image sharing service\u003c/p\u003e\n",
      "content_text": "\nCheck out [andrii-kryvoviaz](https://github.com/andrii-kryvoviaz) and their project [slink](https://github.com/andrii-kryvoviaz/slink).\n\nSelf-hosted image sharing service\n",
      "summary": "Check out andrii-kryvoviaz and their project slink.",
      "date_published": "2025-12-12T13:40:24Z",
      "date_modified": "2025-12-12T13:40:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/notifications-for-static-site-builds/",
      "url": "https://waylonwalker.com/notifications-for-static-site-builds/",
      "title": "notifications for static site builds",
      "content_html": "\u003cp\u003eThis morning I set up notifications for changes to my static site builds\nleveraging \u003ca href=\"/git-name-status/\" class=\"wikilink\" data-title=\"git name status\" data-description=\"is a great way to see what files have changed in a git diff alongside the status code. I recently used this in a script to create a report of new and...\" data-date=\"2025-12-12\" data-preview=\"is a great way to see what files have changed in a git diff alongside the status code. I recently used this in a script to create a report of new and...\"\u003egit name status\u003c/a\u003e and ntfy.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/1c69e648-5aa3-4f66-9085-a045b99450a5.webp\" class=\"glightbox-link\" aria-label=\"notification of changes\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/1c69e648-5aa3-4f66-9085-a045b99450a5.webp\" alt=\"notification of changes\"/ data-glightbox=\"description: notification of changes\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nThis morning I set up notifications for changes to my static site builds\nleveraging \u003ca href=\"/git-name-status/\" class=\"wikilink\" data-title=\"git name status\" data-description=\"is a great way to see what files have changed in a git diff alongside the status code. I recently used this in a script to create a report of new and...\" data-date=\"2025-12-12\"\u003egit name status\u003c/a\u003e and ntfy.\n\n![notification of changes](https://dropper.waylonwalker.com/file/1c69e648-5aa3-4f66-9085-a045b99450a5.webp)\n",
      "summary": "This morning I set up notifications for changes to my static site builds leveraging git-name-status and ntfy.",
      "date_published": "2025-12-12T08:28:45Z",
      "date_modified": "2025-12-12T08:28:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/git-name-status/",
      "url": "https://waylonwalker.com/git-name-status/",
      "title": "git name status",
      "content_html": "\u003cp\u003e\u003ccode\u003e--name-status\u003c/code\u003e is a great way to see what files have changed in a \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e diff\nalongside the status code.  I recently used this in a script to create a report\nof new and modified files during a build.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit diff --name-status\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit diff --name-status origin/main\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit diff --name-status --staged\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit diff --name-status \u003cspan class=\"s1\"\u003e\u0026#39;HEAD@{3 days ago}\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n`--name-status` is a great way to see what files have changed in a git diff\nalongside the status code.  I recently used this in a script to create a report\nof new and modified files during a build.\n\n``` bash\ngit diff --name-status\ngit diff --name-status origin/main\ngit diff --name-status --staged\ngit diff --name-status 'HEAD@{3 days ago}'\n```\n",
      "summary": "is a great way to see what files have changed in a git diff alongside the status code. I recently used this in a script to create a report of new and...",
      "date_published": "2025-12-12T07:53:57Z",
      "date_modified": "2025-12-12T07:53:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dude-is-focused/",
      "url": "https://waylonwalker.com/shots/dude-is-focused/",
      "title": "Dude Locked In",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/dfaeb218-e2cc-4d2f-a4dc-4d8bcfb3a5b5.webp\" class=\"glightbox-link\" aria-label=\"Dude is focused\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/dfaeb218-e2cc-4d2f-a4dc-4d8bcfb3a5b5.webp\" alt=\"Dude is focused\"/ data-glightbox=\"description: Dude is focused\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMy son wanted to help shovel snow, usually this means, I’ll piddle around, have Fun, maybe make things worse, but it’s ok cause I’ll make it a good time.  Tonight he was LOCKED IN and got a good chunk of the neighbors drive and entire sidewalk done.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dude is focused](https://dropper.waylonwalker.com/file/dfaeb218-e2cc-4d2f-a4dc-4d8bcfb3a5b5.webp)\n\n\u003e My son wanted to help shovel snow, usually this means, I'll piddle around, have Fun, maybe make things worse, but it's ok cause I'll make it a good time.  Tonight he was LOCKED IN and got a good chunk of the neighbors drive and entire sidewalk done.\n\n",
      "summary": "My son wanted to help shovel snow, usually this means, I'll piddle around, have Fun, maybe make things worse, but it's ok cause I'll make it a good time. Tonight he was LOCKED IN and got a good chunk of the neighbors drive and entire sidewalk done.",
      "image": "https://dropper.waylonwalker.com/file/dfaeb218-e2cc-4d2f-a4dc-4d8bcfb3a5b5.webp",
      "date_published": "2025-12-11T11:50:07Z",
      "date_modified": "2025-12-11T11:50:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "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\" aria-label=\"screenshot of the dev builds from k9s\"\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/the-right-reasons-to-run-kubernetes-in-your-homelab/",
      "url": "https://waylonwalker.com/the-right-reasons-to-run-kubernetes-in-your-homelab/",
      "title": "The Right Reasons To Run Kubernetes In Your Homelab",
      "content_html": "\u003cp\u003eRunning kubernetes in your \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e is a fantastic way to learn, explore, express\nyourself, and run services that you use.\u003c/p\u003e\n\u003ch2 id=\"the-right-reasons-to-run-kubernetes-in-your-homelab\"\u003eThe Right Reasons To Run Kubernetes In Your Homelab \u003ca href=\"#the-right-reasons-to-run-kubernetes-in-your-homelab\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eThere are not many\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eYou want to learn kubernetes\u003c/li\u003e\n\u003cli\u003eYou like kubernetes\u003c/li\u003e\n\u003cli\u003eYou want to \u003cstrong\u003elearn\u003c/strong\u003e to scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThere are also \u003ca href=\"/the-wrong-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Wrong Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...\" data-date=\"2025-12-06\" data-preview=\"Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...\"\u003eThe Wrong Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"you-want-to-learn-kubernetes\"\u003eYou want to learn kubernetes \u003ca href=\"#you-want-to-learn-kubernetes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHomelabbing is a such a great way to learn new skills, deploy real apps that\nyou use.  Create new custom apps for your specific use cases that no one else\nhas.  You should absolutely run kubernetes in your homelab if you want to learn it.\u003c/p\u003e\n\u003cp\u003eI would recommend to start locally, pull up kind, minikube, or k3d and start\nfrom your local machine before putting it on a server.\u003c/p\u003e\n\u003cp\u003eWhen you decide you are ready for a server, you probably don’t need any crazy\nhardware.  You can probably run on some old retired Dell Optiplex or an old\ndesktop someone is throwing out as it no longer runs windows.\u003c/p\u003e\n\u003ch2 id=\"you-like-kubernetes\"\u003eYou like kubernetes \u003ca href=\"#you-like-kubernetes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHell Yeah Brother, 100% no better reason to run kubernetes at home than because\nyou enjoy it.  I’m with you.  There’s nothing quite like having \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e ops kick in\nand deploy new services, updates, watching deployments rollover with zero\ndowntime.  Watching your cluster heal itself when a node goes down.  Never\nssh-ing in to do deployments.  Still owning your entire hardware.\u003c/p\u003e\n\u003ch2 id=\"you-want-to-learn-to-scale\"\u003eYou want to learn to scale \u003ca href=\"#you-want-to-learn-to-scale\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is probably a stretch reason, maybe not a good one, there are probably\nbetter ways, but here we go.\u003c/p\u003e\n\u003cp\u003eDon’t claim that you \u003cstrong\u003eneed\u003c/strong\u003e scale in your homelab, you don’t.  But it sure is\nfun to run a cluster of nodes, and load balancing services that run across\nthem.  Solving these hard problems to scale across machines is hard.  There’s\nno way around it, there’s a lot to think about.  Doing so in a low stakes\nenvironment that you have skin in the game is a great way to learn.\u003c/p\u003e\n\u003ch2 id=\"i-run-kubernetes-in-my-homelab\"\u003eI run kubernetes in my homelab \u003ca href=\"#i-run-kubernetes-in-my-homelab\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI run it and I really like it\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhat flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eHere are some things I really like about it, and Yes I know you can achieve\nmost of these without kubernetes.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eI don’t have to ssh, hardly ever.\u003c/li\u003e\n\u003cli\u003eI can see everything I’m running, and its defined in a manifest\u003c/li\u003e\n\u003cli\u003ek9s is amazing, and I use it all the time.\n\u003cul\u003e\n\u003cli\u003eshell into running pods\u003c/li\u003e\n\u003cli\u003erestart deployments\u003c/li\u003e\n\u003cli\u003escale deployments\u003c/li\u003e\n\u003cli\u003etrigger cronjobs\u003c/li\u003e\n\u003cli\u003ewatch logs\u003c/li\u003e\n\u003cli\u003eI can scale our minecraft server to 0 in seconds if we are in a different season of life\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eArgoCD is amazing\n\u003cul\u003e\n\u003cli\u003eI ❤️ gitops\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eIngress just works\u003c/li\u003e\n\u003cli\u003eLonghorn\n\u003cul\u003e\n\u003cli\u003emakes snapshots and backups easy\u003c/li\u003e\n\u003cli\u003emakes multi node easy\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ezero-downtime deployments\u003c/li\u003e\n\u003cli\u003eself healing health checks\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI mostly do very simple things, deployments with a container, a volume and\ningress.  Probably things that you could easily run on fly.io.  Theres nothing\nreally fancy.  I just like how easy this setup works for \u003cstrong\u003eme\u003c/strong\u003e.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f8e88b6b-a668-4cea-9792-65339860b07f.webp\" class=\"glightbox-link\" aria-label=\"She’s our friend and she’s crazy\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f8e88b6b-a668-4cea-9792-65339860b07f.webp\" alt=\"She’s our friend and she’s crazy\"/ data-glightbox=\"description: She’s our friend and she’s crazy\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nRunning kubernetes in your homelab is a fantastic way to learn, explore, express\nyourself, and run services that you use.\n\n## The Right Reasons To Run Kubernetes In Your Homelab\n\n_There are not many_\n\n* You want to learn kubernetes\n* You like kubernetes\n* You want to **learn** to scale\n\nThere are also \u003ca href=\"/the-wrong-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Wrong Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...\" data-date=\"2025-12-06\"\u003eThe Wrong Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e\n\n## You want to learn kubernetes\n\nHomelabbing is a such a great way to learn new skills, deploy real apps that\nyou use.  Create new custom apps for your specific use cases that no one else\nhas.  You should absolutely run kubernetes in your homelab if you want to learn it.\n\nI would recommend to start locally, pull up kind, minikube, or k3d and start\nfrom your local machine before putting it on a server.\n\nWhen you decide you are ready for a server, you probably don't need any crazy\nhardware.  You can probably run on some old retired Dell Optiplex or an old\ndesktop someone is throwing out as it no longer runs windows.\n\n## You like kubernetes\n\nHell Yeah Brother, 100% no better reason to run kubernetes at home than because\nyou enjoy it.  I'm with you.  There's nothing quite like having git ops kick in\nand deploy new services, updates, watching deployments rollover with zero\ndowntime.  Watching your cluster heal itself when a node goes down.  Never\nssh-ing in to do deployments.  Still owning your entire hardware.\n\n## You want to learn to scale\n\nThis is probably a stretch reason, maybe not a good one, there are probably\nbetter ways, but here we go.\n\nDon't claim that you **need** scale in your homelab, you don't.  But it sure is\nfun to run a cluster of nodes, and load balancing services that run across\nthem.  Solving these hard problems to scale across machines is hard.  There's\nno way around it, there's a lot to think about.  Doing so in a low stakes\nenvironment that you have skin in the game is a great way to learn.\n\n## I run kubernetes in my homelab\n\nI run it and I really like it\n\n\u003e What flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\n\nHere are some things I really like about it, and Yes I know you can achieve\nmost of these without kubernetes.\n\n* I don't have to ssh, hardly ever.\n* I can see everything I'm running, and its defined in a manifest\n* k9s is amazing, and I use it all the time.\n  * shell into running pods\n  * restart deployments\n  * scale deployments\n  * trigger cronjobs\n  * watch logs\n  * I can scale our minecraft server to 0 in seconds if we are in a different season of life\n* ArgoCD is amazing\n  * I ❤️ gitops\n* Ingress just works\n* Longhorn \n  * makes snapshots and backups easy\n  * makes multi node easy\n* zero-downtime deployments\n* self healing health checks\n\nI mostly do very simple things, deployments with a container, a volume and\ningress.  Probably things that you could easily run on fly.io.  Theres nothing\nreally fancy.  I just like how easy this setup works for **me**.\n\n![She's our friend and she's crazy](https://dropper.waylonwalker.com/file/f8e88b6b-a668-4cea-9792-65339860b07f.webp)\n",
      "summary": "Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.",
      "date_published": "2025-12-10T09:48:14Z",
      "date_modified": "2025-12-10T09:48:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "homelab",
        "kubernetes",
        "self-hosted"
      ]
    },
    {
      "id": "https://waylonwalker.com/minecraft-server-memory/",
      "url": "https://waylonwalker.com/minecraft-server-memory/",
      "title": "minecraft server memory",
      "content_html": "\u003cp\u003eI learned to today that setting \u003ccode\u003eMEMORY\u003c/code\u003e on your minecraft server causes the\nJVM to egregiously allocate all of that memory.  Not setting it causes slow\ndowns and potential crashes, but setting \u003ccode\u003eINIT_MEMORY\u003c/code\u003e and \u003ccode\u003eMAX_MEMORY\u003c/code\u003e gives\nus the best of both worlds.  It is allowed to use more, but does not gobble it\nall up on startup.\u003c/p\u003e\n\u003cp\u003eIn this economy we need to save all the memory we can!\u003c/p\u003e\n\u003cp\u003eHere is a non-working snippet for a minecraft server deployment in kubernetes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edungeon\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eitzg/minecraft-server\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e\u003cspan class=\"nt\"\u003eenv\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eEULA\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e              \u003c/span\u003e\u003cspan class=\"nt\"\u003evalue\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;true\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eINIT_MEMORY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e              \u003c/span\u003e\u003cspan class=\"nt\"\u003evalue\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;512M\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e            \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eMAX_MEMORY\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e              \u003c/span\u003e\u003cspan class=\"nt\"\u003evalue\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;3G\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eand in docker compose\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003edungeon\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eitzg/minecraft-server\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eenvironment\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eEULA\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;true\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eINIT_MEMORY\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;512M\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eMAX_MEMORY\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;3G\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI learned to today that setting `MEMORY` on your minecraft server causes the\nJVM to egregiously allocate all of that memory.  Not setting it causes slow\ndowns and potential crashes, but setting `INIT_MEMORY` and `MAX_MEMORY` gives\nus the best of both worlds.  It is allowed to use more, but does not gobble it\nall up on startup.\n\nIn this economy we need to save all the memory we can!\n\nHere is a non-working snippet for a minecraft server deployment in kubernetes.\n\n``` yaml\n      containers:\n        - name: dungeon\n          image: itzg/minecraft-server\n          env:\n            - name: EULA\n              value: \"true\"\n            - name: INIT_MEMORY\n              value: \"512M\"\n            - name: MAX_MEMORY\n              value: \"3G\"\n```\n\nand in docker compose\n\n``` yaml\n  dungeon:\n    image: itzg/minecraft-server\n    environment:\n      EULA: \"true\"\n      INIT_MEMORY: \"512M\"\n      MAX_MEMORY: \"3G\"\n```\n",
      "summary": "I learned to today that setting on your minecraft server causes the JVM to egregiously allocate all of that memory. Not setting it causes slow downs and...",
      "date_published": "2025-12-10T08:46:36Z",
      "date_modified": "2025-12-10T08:46:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "compose",
        "containers",
        "docker",
        "gaming",
        "homelab",
        "kubernetes",
        "minecraft"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cogwork-core-gang-fight/",
      "url": "https://waylonwalker.com/shots/cogwork-core-gang-fight/",
      "title": "Cogwork Core Gang Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5279af87-077a-4d40-82ce-b5c805844c05.mp4\" class=\"glightbox-link\" aria-label=\"Cogwork Core Gang Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/5279af87-077a-4d40-82ce-b5c805844c05.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/5279af87-077a-4d40-82ce-b5c805844c05.mp4\" type=\"video/mp4\"\u003eCogwork Core Gang Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCogwork Core Gang Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Cogwork Core Gang Fight](https://dropper.waylonwalker.com/file/5279af87-077a-4d40-82ce-b5c805844c05.mp4)\n\n\u003e Cogwork Core Gang Fight\n",
      "summary": "Cogwork Core Gang Fight",
      "image": "https://dropper.waylonwalker.com/file/5279af87-077a-4d40-82ce-b5c805844c05.mp4",
      "date_published": "2025-12-09T20:32:01Z",
      "date_modified": "2025-12-09T20:32:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-890/",
      "url": "https://waylonwalker.com/thought-890/",
      "title": "💭 Why is Everyone So Wrong About AI Water Use?? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"H_c6MWk7PQc\" title=\"Why is Everyone So Wrong About AI Water Use??\" playlabel=\"Play: Why is Everyone So Wrong About AI Water Use??\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI did not realize all the places to be considered as AI water usage.  Hank goes deep highlighting all of the sources he is aware of, most reports leave off a lot of these sources, some reports go maybe too far adding sources that may not make sense depending on the question you are asking.\u003c/p\u003e\n\u003cp\u003eAs someone that runs computers with gpus in their house, and watching LTT make AIO installs on GPUs I’ve wondered what would AI use water for, now I understand that its a lot. No where near agriculture, but a lot.\u003c/p\u003e\n\u003cp\u003eUnlike running a gpu in your house, potentially with a closed loop AIO, data centers are filled with hardware making heat and it all must go somewhere.  Current technology has this done with evaporative cooling, i.e. its not a closed loop, the water goes into the sky.\u003c/p\u003e\n\u003cp\u003eHe goes on to point out that its not just the data center, using water, but also chip fab and power plants.\u003c/p\u003e\n\u003cp\u003eSomething I hadn’t put a lot of thought into is the type of water.  While a lot of agriculture and power applications do not use municipal water, a lot of data centers do, putting excess strain on water treatment.\u003c/p\u003e\n\u003cp\u003eSomething I find interesting is that Altman is doing the same thing here that he does on his financial numbers.  Stating they use almost nothing on inference.  Missing training, missing training for models that turned out to be a flop and never made it anywhere, but they learned how to make better models from it.  Missing chip fab, construction, transportation, and power.  The way report numbers bases on a small subset of their entire business feels wrong.\u003c/p\u003e\n\u003cp\u003eAnyways Hank does a great job at saying this is not a simple answer, its complicated.  Things are moving so fast that its hard to be accurate, its hard for infrastructure to keep up.  There’s a lot more to think about than the water use on a single query.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"H_c6MWk7PQc\" title=\"Why is Everyone So Wrong About AI Water Use??\" playlabel=\"Play: Why is Everyone So Wrong About AI Water Use??\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI did not realize all the places to be considered as AI water usage.  Hank goes deep highlighting all of the sources he is aware of, most reports leave off a lot of these sources, some reports go maybe too far adding sources that may not make sense depending on the question you are asking.\n\nAs someone that runs computers with gpus in their house, and watching LTT make AIO installs on GPUs I've wondered what would AI use water for, now I understand that its a lot. No where near agriculture, but a lot.\n\nUnlike running a gpu in your house, potentially with a closed loop AIO, data centers are filled with hardware making heat and it all must go somewhere.  Current technology has this done with evaporative cooling, i.e. its not a closed loop, the water goes into the sky.\n\nHe goes on to point out that its not just the data center, using water, but also chip fab and power plants.\n\nSomething I hadn't put a lot of thought into is the type of water.  While a lot of agriculture and power applications do not use municipal water, a lot of data centers do, putting excess strain on water treatment.\n\nSomething I find interesting is that Altman is doing the same thing here that he does on his financial numbers.  Stating they use almost nothing on inference.  Missing training, missing training for models that turned out to be a flop and never made it anywhere, but they learned how to make better models from it.  Missing chip fab, construction, transportation, and power.  The way report numbers bases on a small subset of their entire business feels wrong.\n\nAnyways Hank does a great job at saying this is not a simple answer, its complicated.  Things are moving so fast that its hard to be accurate, its hard for infrastructure to keep up.  There's a lot more to think about than the water use on a single query.\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=H_c6MWk7PQc",
      "date_published": "2025-12-09T14:39:18Z",
      "date_modified": "2025-12-09T14:39:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-889/",
      "url": "https://waylonwalker.com/thought-889/",
      "title": "💭 Notes – 05:09 Tue 9 Dec 2025 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-12-09T05:09Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 05:09 Tue 9 Dec 2025 — Notes – 05:09 Tue 9 Dec 2025\" loading=\"lazy\"/ data-glightbox=\"description: Notes – 05:09 Tue 9 Dec 2025 — Notes – 05:09 Tue 9 Dec 2025\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 05:09 Tue 9 Dec 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 05:09 Tue 9 Dec 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAge verification hitting bluesky?? At least its not yet requiring your govt issued id or anything, but stepping that direction.  I don’t know how I feel about age checks, does it actually protect kids when parents aren’t involved?  I can’t say anything there, but it really does feel like its about ready to hurt the rest of us, requiring us to whip out ids and personal data for anything done online.  This is a real problem that is hard to solve, and reasons why it has not been solved yet.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-12-09T05:09Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 05:09 Tue 9 Dec 2025 — Notes – 05:09 Tue 9 Dec 2025\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 05:09 Tue 9 Dec 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 05:09 Tue 9 Dec 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAge verification hitting bluesky?? At least its not yet requiring your govt issued id or anything, but stepping that direction.  I don't know how I feel about age checks, does it actually protect kids when parents aren't involved?  I can't say anything there, but it really does feel like its about ready to hurt the rest of us, requiring us to whip out ids and personal data for anything done online.  This is a real problem that is hard to solve, and reasons why it has not been solved yet.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/notes/2025-12-09T05:09Z/",
      "date_published": "2025-12-09T14:08:20Z",
      "date_modified": "2025-12-09T14:08:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "social",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-888/",
      "url": "https://waylonwalker.com/thought-888/",
      "title": "💭 Deprecations via warnings don’t work for Python libraries",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Dec/9/deprecations-via-warnings/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDeprecations via warnings don’t work for Python libraries\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSeth Larson reports that urllib3 2.6.0 released on the 5th of December and finally removed the HTTPResponse.getheaders() and HTTPResponse.getheader(name, default) methods, which have been marked as...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDeprecation warnings are so easy to miss, ignore, become numb to.  Creating tools and processes to catch and address these issues is important.  I’m surprised such big projects let deprecations just hang around for years.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Dec/9/deprecations-via-warnings/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDeprecations via warnings don’t work for Python libraries\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSeth Larson reports that urllib3 2.6.0 released on the 5th of December and finally removed the HTTPResponse.getheaders() and HTTPResponse.getheader(name, default) methods, which have been marked as...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDeprecation warnings are so easy to miss, ignore, become numb to.  Creating tools and processes to catch and address these issues is important.  I'm surprised such big projects let deprecations just hang around for years.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Dec/9/deprecations-via-warnings/#atom-everything",
      "date_published": "2025-12-09T14:01:29Z",
      "date_modified": "2025-12-09T14:01:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-887/",
      "url": "https://waylonwalker.com/thought-887/",
      "title": "💭 A quote from Claude",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Dec/9/claude/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from Claude\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI found the problem and it\u0026#39;s really bad. Looking at your log, here\u0026#39;s the catastrophic command that was run: rm -rf tests/ patches/ plan/ ~/ See that ~/ at the …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003edamn this is a rough one.  A users entire home directory removed by claude code from an rm command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm -rf tests/ patches/ plan/ ~/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eReading the first half of that command it LGTM.  If you had approved rm, you are hosed.  If  this is inside a larger script its running, you really gotta read close.  This one still feels pretty obvious, but I can imagine some bash doing some nasty things I miss if I read it and understand it let alone glance at it.\u003c/p\u003e\n\u003cp\u003eI’ll take this as a reminder that I really need to be paying full-ass attention to agents, and moving towards a better sandbox for them, something in docker, maybe something like distrobox that is a magic wrapper over podman that just gives you the things you need for what it does.  Something that starts up with access to start web servers, run agentic cli of choice, see project, \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e commit.  It feels like the right thing has a lot of what distrobox does, but distrobox has too much and would be prone to this using it as I’ve used it in the past.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Dec/9/claude/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from Claude\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI found the problem and it\u0026#39;s really bad. Looking at your log, here\u0026#39;s the catastrophic command that was run: rm -rf tests/ patches/ plan/ ~/ See that ~/ at the …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ndamn this is a rough one.  A users entire home directory removed by claude code from an rm command.\n\n``` bash\nrm -rf tests/ patches/ plan/ ~/\n```\n\nReading the first half of that command it LGTM.  If you had approved rm, you are hosed.  If  this is inside a larger script its running, you really gotta read close.  This one still feels pretty obvious, but I can imagine some bash doing some nasty things I miss if I read it and understand it let alone glance at it.\n\n\nI'll take this as a reminder that I really need to be paying full-ass attention to agents, and moving towards a better sandbox for them, something in docker, maybe something like distrobox that is a magic wrapper over podman that just gives you the things you need for what it does.  Something that starts up with access to start web servers, run agentic cli of choice, see project, git commit.  It feels like the right thing has a lot of what distrobox does, but distrobox has too much and would be prone to this using it as I've used it in the past.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Dec/9/claude/#atom-everything",
      "date_published": "2025-12-09T13:56:30Z",
      "date_modified": "2025-12-09T13:56:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cogwork-dancers-fight/",
      "url": "https://waylonwalker.com/shots/cogwork-dancers-fight/",
      "title": "Cogwork Dancers Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/835f8578-52d7-4a6f-ab05-9462658444b7.mp4\" class=\"glightbox-link\" aria-label=\"Cogwork Dancers Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/835f8578-52d7-4a6f-ab05-9462658444b7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/835f8578-52d7-4a6f-ab05-9462658444b7.mp4\" type=\"video/mp4\"\u003eCogwork Dancers Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCogwork Dancers Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Cogwork Dancers Fight](https://dropper.waylonwalker.com/file/835f8578-52d7-4a6f-ab05-9462658444b7.mp4)\n\n\u003e Cogwork Dancers Fight\n",
      "summary": "Cogwork Dancers Fight",
      "image": "https://dropper.waylonwalker.com/file/835f8578-52d7-4a6f-ab05-9462658444b7.mp4",
      "date_published": "2025-12-09T13:51:16Z",
      "date_modified": "2025-12-09T13:51:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/og/",
      "url": "https://waylonwalker.com/og/",
      "title": "og",
      "content_html": "\u003cp\u003eOG is short for open graph, a set of standard meta tags that are used for\nsocial media sharing.  This is what tells other websites how to describe and\ndisplay your site when shared on social media, text messages, or discord.\u003c/p\u003e\n",
      "content_text": "\nOG is short for open graph, a set of standard meta tags that are used for\nsocial media sharing.  This is what tells other websites how to describe and\ndisplay your site when shared on social media, text messages, or discord.\n\n\n",
      "summary": "OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...",
      "date_published": "2025-12-09T12:49:21Z",
      "date_modified": "2025-12-09T12:49:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog"
      ]
    },
    {
      "id": "https://waylonwalker.com/one-year-of-shots/",
      "url": "https://waylonwalker.com/one-year-of-shots/",
      "title": "One Year Of Shots",
      "content_html": "\u003cp\u003eI’ve been running my shot scraper api for a year now.  It creates \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e images for\nmy website and thumbnails for my [[ reader ]] using a headless chrome instance.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e25870 shots\u003c/li\u003e\n\u003cli\u003e73 shots per day on average\u003c/li\u003e\n\u003cli\u003e12-09-2025 first shot taken\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"histogram\"\u003eHistogram \u003ca href=\"#histogram\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/63705078-3342-4807-b5fd-46a0860efc27.webp\" class=\"glightbox-link\" aria-label=\"histogram of shots\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/63705078-3342-4807-b5fd-46a0860efc27.webp\" alt=\"histogram of shots\"/ data-glightbox=\"description: histogram of shots\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ea histogram of shot counts by day\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eYou can see in the histogram that I’ve had a few big spike days, This has been\nmostly for days that I’ve integrated into a new service or changed the\nendpoint.  On February 13, 2025 I swapped over from using the post to using\ntemplate specific to open graph images.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e-content = \u0026#34;https://shots.waylonwalker.com/shot/?url={{ config.url }}{{ post.slug }}\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+content = \u0026#34;https://shots.waylonwalker.com/shot/?url={{ config.url }}{{ post.slug }}/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eImage Comparison\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eOriginal Post Image\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://shots.waylonwalker.com/shot/?url=https://dev.waylonwalker.com/one-year-of-shots/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://dev.waylonwalker.com/one-year-of-shots/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eoriginally I simply used an image of the post itself\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eNew OG Image\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://shots.waylonwalker.com/shot/?url=https://dev.waylonwalker.com/one-year-of-shots/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://dev.waylonwalker.com/one-year-of-shots/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eIn Feb 2025 I made OG specific templates to use for the OG images.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSwapping to og images\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"collage\"\u003eCollage \u003ca href=\"#collage\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFor fun I made a collage of all the shots.  It’s cool to see all of these\ntogether, I remember a lot of the thumbnails and posts.  Many of them from my\nrss reader.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5d4b46a6-79d6-4320-bf7d-f917c862c57d.webp\" class=\"glightbox-link\" aria-label=\"collage of shots\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/5d4b46a6-79d6-4320-bf7d-f917c862c57d.webp\" alt=\"collage of shots\"/ data-glightbox=\"description: collage of shots\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ecollage of all shots, click to see full size\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eI tried to make a video collage, but turns out it takes a long time to show all\n25k shots in video form.  It also turned out to be a bit of a strobe as I don’t\nyet have it figured out how to dark mode in headless chrome.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/1c629d32-4284-4c71-a4f7-62d82e445c7d.webm\" class=\"glightbox-link\" aria-label=\"video collage of shots\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/1c629d32-4284-4c71-a4f7-62d82e445c7d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/1c629d32-4284-4c71-a4f7-62d82e445c7d.webm\" type=\"video/webm\"\u003evideo collage of shots\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003evideo collage of 600 shots, I tried to include all, but even at 20fps its a 20 minute video.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nI've been running my shot scraper api for a year now.  It creates og images for\nmy website and thumbnails for my [[ reader ]] using a headless chrome instance.\n\n* 25870 shots\n* 73 shots per day on average\n* 12-09-2025 first shot taken\n\n## Histogram\n\n![histogram of shots](https://dropper.waylonwalker.com/file/63705078-3342-4807-b5fd-46a0860efc27.webp)\n\u003e a histogram of shot counts by day\n\nYou can see in the histogram that I've had a few big spike days, This has been\nmostly for days that I've integrated into a new service or changed the\nendpoint.  On February 13, 2025 I swapped over from using the post to using\ntemplate specific to open graph images.\n\n``` diff\n-content = \"https://shots.waylonwalker.com/shot/?url={{ config.url }}{{ post.slug }}\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\"\n+content = \"https://shots.waylonwalker.com/shot/?url={{ config.url }}{{ post.slug }}/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600\"\n```\n\n!!! vsplit Image Comparison\n\n    !!! vsplit Original Post Image\n\n        ![](https://shots.waylonwalker.com/shot/?url=https://dev.waylonwalker.com/one-year-of-shots/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600)\n\n        \u003e originally I simply used an image of the post itself\n\n    !!! vsplit New OG Image\n\n        ![](https://shots.waylonwalker.com/shot/?url=https://dev.waylonwalker.com/one-year-of-shots/og/\u0026height=600\u0026width=1200\u0026scaled_width=1200\u0026scaled_height=600)\n\n        \u003e In Feb 2025 I made OG specific templates to use for the OG images.\n\n\u003e Swapping to og images\n\n## Collage\n\nFor fun I made a collage of all the shots.  It's cool to see all of these\ntogether, I remember a lot of the thumbnails and posts.  Many of them from my\nrss reader.\n\n![collage of shots](https://dropper.waylonwalker.com/file/5d4b46a6-79d6-4320-bf7d-f917c862c57d.webp)\n\u003e collage of all shots, click to see full size\n\nI tried to make a video collage, but turns out it takes a long time to show all\n25k shots in video form.  It also turned out to be a bit of a strobe as I don't\nyet have it figured out how to dark mode in headless chrome.\n\n![video collage of shots](https://dropper.waylonwalker.com/file/1c629d32-4284-4c71-a4f7-62d82e445c7d.webm)\n\u003e video collage of 600 shots, I tried to include all, but even at 20fps its a 20 minute video.\n",
      "summary": "I've been running my shot scraper api for a year now. It creates og images for my website and thumbnails for my reader using a headless chrome instance.",
      "date_published": "2025-12-09T12:44:39Z",
      "date_modified": "2025-12-09T12:44:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/web-snow-fall/",
      "url": "https://waylonwalker.com/web-snow-fall/",
      "title": "web snow fall",
      "content_html": "\u003cp\u003eI found snow-fall component from\n\u003ca href=\"https://www.zachleat.com/web/snow-fall/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.zachleat.com.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.zachleat.com.jpg\" class=\"has-avatar  has-avatar-before\"\u003ezachleat\u003c/a\u003e, and its beautiful… to\nme.  I like the way it looks, its simple and whimsical.\u003c/p\u003e\n\u003ch2 id=\"install\"\u003eInstall \u003ca href=\"#install\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is an npm package \u003ccode\u003e@zachleat/snow-fall\u003c/code\u003e if that’s your thing.  I like\nvendoring in small things like this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI generally save it in my justfile so that I remember how I got it and how to\nupdate…. yaya I could use npm, but I don’t for no build sites.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eget-snowfall:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"usage\"\u003eUsage \u003ca href=\"#usage\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow add the component to your page.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026lt;!-- This belongs somewhere inside \u0026lt;head\u0026gt; --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e \u003cspan class=\"na\"\u003etype\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;module\u0026#34;\u003c/span\u003e \u003cspan class=\"na\"\u003esrc\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;snow-fall.js\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"c\"\u003e\u0026lt;!-- Adjust the src to your path --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026lt;!-- This belongs somewhere inside \u0026lt;body\u0026gt; --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026lt;!-- Anything before will be below the snow. --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003esnow-fall\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003esnow-fall\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e\u0026lt;!-- Anything after will show above the snow. --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI found snow-fall component from\n[zachleat](https://www.zachleat.com/web/snow-fall/), and its beautiful... to\nme.  I like the way it looks, its simple and whimsical.\n\n## Install\n\nThere is an npm package `@zachleat/snow-fall` if that's your thing.  I like\nvendoring in small things like this.\n\n``` bash\ncurl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js\n```\n\nI generally save it in my justfile so that I remember how I got it and how to\nupdate.... yaya I could use npm, but I don't for no build sites.\n\n``` bash\nget-snowfall:\n    curl -o static/snow-fall.js https://raw.githubusercontent.com/zachleat/snow-fall/refs/heads/main/snow-fall.js\n```\n\n## Usage\n\nNow add the component to your page.\n\n``` html\n\u003c!-- This belongs somewhere inside \u003chead\u003e --\u003e\n\u003cscript type=\"module\" src=\"snow-fall.js\"\u003e\u003c/script\u003e \u003c!-- Adjust the src to your path --\u003e\n\n\u003c!-- This belongs somewhere inside \u003cbody\u003e --\u003e\n\u003c!-- Anything before will be below the snow. --\u003e\n\u003csnow-fall\u003e\u003c/snow-fall\u003e\n\u003c!-- Anything after will show above the snow. --\u003e\n```\n",
      "summary": "I found snow-fall component from zachleat, and its beautiful... to me. I like the way it looks, its simple and whimsical.",
      "date_published": "2025-12-09T10:21:17Z",
      "date_modified": "2025-12-09T10:21:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/check-your-kubeconfig-expire-time/",
      "url": "https://waylonwalker.com/check-your-kubeconfig-expire-time/",
      "title": "check your kubeconfig expire time",
      "content_html": "\u003cp\u003eToday I learned an important lesson that you should periodically check on your\nkubeconfigs expiration date.  It’s easy to do.  You can ask for the\nclient-certificate-data from your kubeconfig, decode it, and use openssl to get\nthe expiration date.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl config view --raw -o \u003cspan class=\"nv\"\u003ejsonpath\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;{.users[0].user.client-certificate-data}\u0026#39;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e base64 -d 2\u0026gt;/dev/null \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e openssl x509 -noout -dates\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis will only work for the first user, if you have more than one user or\ncontext defined in your kubeconfig you will need to adjust.\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\nToday I learned an important lesson that you should periodically check on your\nkubeconfigs expiration date.  It's easy to do.  You can ask for the\nclient-certificate-data from your kubeconfig, decode it, and use openssl to get\nthe expiration date.\n\n``` bash\nkubectl config view --raw -o jsonpath='{.users[0].user.client-certificate-data}' \\\n  | base64 -d 2\u003e/dev/null \\\n  | openssl x509 -noout -dates\n```\n\n!!! Note\n\n    This will only work for the first user, if you have more than one user or\n    context defined in your kubeconfig you will need to adjust.\n",
      "summary": "Today I learned an important lesson that you should periodically check on your kubeconfigs expiration date. It's easy to do. You can ask for the...",
      "date_published": "2025-12-08T20:59:27Z",
      "date_modified": "2025-12-08T20:59:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes"
      ]
    },
    {
      "id": "https://waylonwalker.com/not-every-print-needs-supports/",
      "url": "https://waylonwalker.com/not-every-print-needs-supports/",
      "title": "Not every print needs supports",
      "content_html": "\u003cp\u003eNot every print needs supports.  So many models default to having it on,\nwhether needed or not.  Well designed parts, designed for 3d printing almost\nnever need supports (depending on constraints).\u003c/p\u003e\n",
      "content_text": "\nNot every print needs supports.  So many models default to having it on,\nwhether needed or not.  Well designed parts, designed for 3d printing almost\nnever need supports (depending on constraints).\n",
      "summary": "Not every print needs supports. So many models default to having it on, whether needed or not. Well designed parts, designed for 3d printing almost never...",
      "date_published": "2025-12-08T14:17:05Z",
      "date_modified": "2025-12-08T14:17:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/slab-fight/",
      "url": "https://waylonwalker.com/shots/slab-fight/",
      "title": "Slab Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/13ceff65-f819-4204-a254-56df6bdff889.mp4\" class=\"glightbox-link\" aria-label=\"Slab Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/13ceff65-f819-4204-a254-56df6bdff889.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/13ceff65-f819-4204-a254-56df6bdff889.mp4\" type=\"video/mp4\"\u003eSlab Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSlab Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Slab Fight](https://dropper.waylonwalker.com/file/13ceff65-f819-4204-a254-56df6bdff889.mp4)\n\n\u003e Slab Fight\n",
      "summary": "Slab Fight",
      "image": "https://dropper.waylonwalker.com/file/13ceff65-f819-4204-a254-56df6bdff889.mp4",
      "date_published": "2025-12-08T12:17:45Z",
      "date_modified": "2025-12-08T12:17:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/stolen-dress/",
      "url": "https://waylonwalker.com/shots/stolen-dress/",
      "title": "Stolen Dress",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/60a62671-be5e-4b5d-b140-ebf92d771a60.mp4\" class=\"glightbox-link\" aria-label=\"Stolen Dress\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/60a62671-be5e-4b5d-b140-ebf92d771a60.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/60a62671-be5e-4b5d-b140-ebf92d771a60.mp4\" type=\"video/mp4\"\u003eStolen Dress\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eStolen Dress\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Stolen Dress](https://dropper.waylonwalker.com/file/60a62671-be5e-4b5d-b140-ebf92d771a60.mp4)\n\n\u003e Stolen Dress\n",
      "summary": "Stolen Dress",
      "image": "https://dropper.waylonwalker.com/file/60a62671-be5e-4b5d-b140-ebf92d771a60.mp4",
      "date_published": "2025-12-08T12:14:16Z",
      "date_modified": "2025-12-08T12:14:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/moss-mother-2-fight/",
      "url": "https://waylonwalker.com/shots/moss-mother-2-fight/",
      "title": "Moss Mother 2 Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/cb5103d7-f414-4fa0-9cd1-4a8470fa0070.mp4\" class=\"glightbox-link\" aria-label=\"Moss Mother 2 Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/cb5103d7-f414-4fa0-9cd1-4a8470fa0070.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/cb5103d7-f414-4fa0-9cd1-4a8470fa0070.mp4\" type=\"video/mp4\"\u003eMoss Mother 2 Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMoss Mother 2 Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Moss Mother 2 Fight](https://dropper.waylonwalker.com/file/cb5103d7-f414-4fa0-9cd1-4a8470fa0070.mp4)\n\n\u003e Moss Mother 2 Fight\n",
      "summary": "Moss Mother 2 Fight",
      "image": "https://dropper.waylonwalker.com/file/cb5103d7-f414-4fa0-9cd1-4a8470fa0070.mp4",
      "date_published": "2025-12-08T12:11:58Z",
      "date_modified": "2025-12-08T12:11:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/reminder-include-steps-to-reproduce/",
      "url": "https://waylonwalker.com/reminder-include-steps-to-reproduce/",
      "title": "reminder Include steps to reproduce",
      "content_html": "\u003cp\u003eInclude steps to reproduce your bug when you file a bug report or issue.  You\nmay quickly forget how you got there, and no one can fix a bug that is not\nreproducible.\u003c/p\u003e\n",
      "content_text": "\nInclude steps to reproduce your bug when you file a bug report or issue.  You\nmay quickly forget how you got there, and no one can fix a bug that is not\nreproducible.\n",
      "summary": "Include steps to reproduce your bug when you file a bug report or issue. You may quickly forget how you got there, and no one can fix a bug that is not...",
      "date_published": "2025-12-08T10:09:23Z",
      "date_modified": "2025-12-08T10:09:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-886/",
      "url": "https://waylonwalker.com/thought-886/",
      "title": "💭 3d Printing a Geared Vice - Will It work? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"9z8XdJnQp1A\" title=\"3d Printing a Geared Vice - Will It work?\" playlabel=\"Play: 3d Printing a Geared Vice - Will It work?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis looks like a really good low cost option for some workholding.  There is never a shortage of workholding in the shop and everything has a place.  Having something low cost that you can have a bunch of makes a lot of sense.  Maybe you still need a super scucum unit for really clamping the shit out of something, but this easily covers most use cases in a garage workshop.  I want to build it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"9z8XdJnQp1A\" title=\"3d Printing a Geared Vice - Will It work?\" playlabel=\"Play: 3d Printing a Geared Vice - Will It work?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis looks like a really good low cost option for some workholding.  There is never a shortage of workholding in the shop and everything has a place.  Having something low cost that you can have a bunch of makes a lot of sense.  Maybe you still need a super scucum unit for really clamping the shit out of something, but this easily covers most use cases in a garage workshop.  I want to build it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=9z8XdJnQp1A",
      "date_published": "2025-12-07T21:28:39Z",
      "date_modified": "2025-12-07T21:28:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought",
        "woodworking"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/moorwing/",
      "url": "https://waylonwalker.com/shots/moorwing/",
      "title": "Moorwing",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/8b8230f7-c641-41c9-a772-a597dcd499e1.mp4\" class=\"glightbox-link\" aria-label=\"Moorwing\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/8b8230f7-c641-41c9-a772-a597dcd499e1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/8b8230f7-c641-41c9-a772-a597dcd499e1.mp4\" type=\"video/mp4\"\u003eMoorwing\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMoorwing\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Moorwing](https://dropper.waylonwalker.com/file/8b8230f7-c641-41c9-a772-a597dcd499e1.mp4)\n\n\u003e Moorwing\n",
      "summary": "Moorwing",
      "image": "https://dropper.waylonwalker.com/file/8b8230f7-c641-41c9-a772-a597dcd499e1.mp4",
      "date_published": "2025-12-07T21:18:30Z",
      "date_modified": "2025-12-07T21:18:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-885/",
      "url": "https://waylonwalker.com/thought-885/",
      "title": "💭 Steam Machine CAN Start at $399 with THIS SKU! | Cut Down Yiel...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"v1JN8nCD1JM\" title=\"Steam Machine Barebones Edition: Choice Born From Desperation! | Cut Down Yields\" playlabel=\"Play: Steam Machine Barebones Edition: Choice Born From Desperation! | Cut Down Yields\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eMoore’s Law is Dead pitches a pretty ingenious sku for the new gabecube aka steam machine.  I fully support repairability and ewaste reduction. most of these components have not had \u003cstrong\u003eMAJOR\u003c/strong\u003e improvements in years, hence his channel name.  There is a possibility here that Valve could ship with their unique hardware, (apu, psu, case, ports, networking) and let you bring your own ssd and ram from an old device that you might not use anymore.  I love this idea.  At the same time it feels like entering the star wars universe where there are no more new manufacturing and everything is cobbled together from old hardware made long ago.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"v1JN8nCD1JM\" title=\"Steam Machine Barebones Edition: Choice Born From Desperation! | Cut Down Yields\" playlabel=\"Play: Steam Machine Barebones Edition: Choice Born From Desperation! | Cut Down Yields\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nMoore's Law is Dead pitches a pretty ingenious sku for the new gabecube aka steam machine.  I fully support repairability and ewaste reduction. most of these components have not had **MAJOR** improvements in years, hence his channel name.  There is a possibility here that Valve could ship with their unique hardware, (apu, psu, case, ports, networking) and let you bring your own ssd and ram from an old device that you might not use anymore.  I love this idea.  At the same time it feels like entering the star wars universe where there are no more new manufacturing and everything is cobbled together from old hardware made long ago.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=v1JN8nCD1JM",
      "date_published": "2025-12-07T17:24:50Z",
      "date_modified": "2025-12-07T17:24:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/all-i-want-for-christmas-is-filliment/",
      "url": "https://waylonwalker.com/all-i-want-for-christmas-is-filliment/",
      "title": "All I want for Christmas is, filliment",
      "content_html": "\u003cp\u003eAll I want for Christmas is filament\u003c/p\u003e\n\u003cp\u003eI don’t need gifts or fancy things\u003c/p\u003e\n\u003cp\u003eI just wanna model, tinker, and print,\u003c/p\u003e\n\u003cp\u003ewatch layers stack just right.\u003c/p\u003e\n\u003cp\u003eSanta, if you’re listening… PLA, PETG, ABS will do.\u003c/p\u003e\n",
      "content_text": "\nAll I want for Christmas is filament\n\nI don’t need gifts or fancy things\n\nI just wanna model, tinker, and print,\n\nwatch layers stack just right.\n\nSanta, if you’re listening... PLA, PETG, ABS will do.\n",
      "summary": "All I want for Christmas is filament",
      "date_published": "2025-12-07T16:38:30Z",
      "date_modified": "2025-12-07T16:38:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/needle-strike/",
      "url": "https://waylonwalker.com/shots/needle-strike/",
      "title": "Needle Strike",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/4022942b-b96e-4575-9fd4-ccece18bda0c.mp4\" class=\"glightbox-link\" aria-label=\"Needle Strike\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/4022942b-b96e-4575-9fd4-ccece18bda0c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/4022942b-b96e-4575-9fd4-ccece18bda0c.mp4\" type=\"video/mp4\"\u003eNeedle Strike\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eNeedle Strike\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Needle Strike](https://dropper.waylonwalker.com/file/4022942b-b96e-4575-9fd4-ccece18bda0c.mp4)\n\n\u003e Needle Strike\n",
      "summary": "Needle Strike",
      "image": "https://dropper.waylonwalker.com/file/4022942b-b96e-4575-9fd4-ccece18bda0c.mp4",
      "date_published": "2025-12-07T15:53:09Z",
      "date_modified": "2025-12-07T15:53:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/conchflies-fight/",
      "url": "https://waylonwalker.com/shots/conchflies-fight/",
      "title": "Conchflies Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/0ba195cf-dd6c-48e2-853b-3199e8d37262.mp4\" class=\"glightbox-link\" aria-label=\"Conchflies Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/0ba195cf-dd6c-48e2-853b-3199e8d37262.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/0ba195cf-dd6c-48e2-853b-3199e8d37262.mp4\" type=\"video/mp4\"\u003eConchflies Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eConchflies Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Conchflies Fight](https://dropper.waylonwalker.com/file/0ba195cf-dd6c-48e2-853b-3199e8d37262.mp4)\n\n\u003e Conchflies Fight\n",
      "summary": "Conchflies Fight",
      "image": "https://dropper.waylonwalker.com/file/0ba195cf-dd6c-48e2-853b-3199e8d37262.mp4",
      "date_published": "2025-12-07T15:52:02Z",
      "date_modified": "2025-12-07T15:52:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/gh-auth-switch/",
      "url": "https://waylonwalker.com/gh-auth-switch/",
      "title": "gh auth switch",
      "content_html": "\u003cp\u003eWhen using two GitHub accounts the gh cli gives very easy \u003ccode\u003egh auth switch\u003c/code\u003e workflow from the cli.\u003c/p\u003e\n\u003cdiv class=\"admonition hint\"\u003e\n\u003cp class=\"admonition-title\"\u003efrom the docs\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003egh auth switch –help\nSwitch the active account for a GitHub host.\u003c/p\u003e\n\u003cp\u003eThis command changes the authentication configuration that will\nbe used when running commands targeting the specified GitHub host.\u003c/p\u003e\n\u003cp\u003eIf the specified host has two accounts, the active account will be switched\nautomatically. If there are more than two accounts, disambiguation will be\nrequired either through the \u003ccode\u003e--user\u003c/code\u003e flag or an interactive prompt.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# list accounts\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egh auth status\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# switch accounds (interactive if more than 2, i\u0026#39;ve never seen this personally)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egh auth switch\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nWhen using two GitHub accounts the gh cli gives very easy `gh auth switch` workflow from the cli.\n\n!!! hint from the docs\n\n  gh auth switch --help\n  Switch the active account for a GitHub host.\n\n  This command changes the authentication configuration that will\n  be used when running commands targeting the specified GitHub host.\n\n  If the specified host has two accounts, the active account will be switched\n  automatically. If there are more than two accounts, disambiguation will be\n  required either through the `--user` flag or an interactive prompt.\n\n``` bash\n# list accounts\ngh auth status\n# switch accounds (interactive if more than 2, i've never seen this personally)\ngh auth switch\n```\n",
      "summary": "When using two GitHub accounts the gh cli gives very easy workflow from the cli.",
      "date_published": "2025-12-07T10:55:55Z",
      "date_modified": "2025-12-07T10:55:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "gh",
        "github"
      ]
    },
    {
      "id": "https://waylonwalker.com/basecamp-fizzy/",
      "url": "https://waylonwalker.com/basecamp-fizzy/",
      "title": "⭐ basecamp fizzy",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/basecamp\" 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\"\u003ebasecamp\u003c/a\u003e and their project \u003ca href=\"https://github.com/basecamp/fizzy\" 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\"\u003efizzy\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eKanban as it should be. Not as it has been.\u003c/p\u003e\n",
      "content_text": "\nCheck out [basecamp](https://github.com/basecamp) and their project [fizzy](https://github.com/basecamp/fizzy).\n\nKanban as it should be. Not as it has been.\n",
      "summary": "Check out basecamp and their project fizzy.",
      "date_published": "2025-12-07T05:04:49Z",
      "date_modified": "2025-12-07T05:04:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-884/",
      "url": "https://waylonwalker.com/thought-884/",
      "title": "💭 You’ll own NOTHING and be happy? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"S45rLuY48w4\" title=\"You’ll own NOTHING and be happy?\" playlabel=\"Play: You’ll own NOTHING and be happy?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat a heart breaking video to listen to.  I’m trying to do a better job of being positive right now.  I’m trying to look at the world in what I have control over (not much more than my attitude about it).  AI is killing so much right now I’m trying to look at it as the good tools the engineers made it to be.  Ownership is dying around every goddamn corner.  Hats off to Edison, this guy gets it.  We need more companies like this taking a stand for the average person who wants to make it out there.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"S45rLuY48w4\" title=\"You’ll own NOTHING and be happy?\" playlabel=\"Play: You’ll own NOTHING and be happy?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWhat a heart breaking video to listen to.  I'm trying to do a better job of being positive right now.  I'm trying to look at the world in what I have control over (not much more than my attitude about it).  AI is killing so much right now I'm trying to look at it as the good tools the engineers made it to be.  Ownership is dying around every goddamn corner.  Hats off to Edison, this guy gets it.  We need more companies like this taking a stand for the average person who wants to make it out there.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=S45rLuY48w4",
      "date_published": "2025-12-06T21:33:15Z",
      "date_modified": "2025-12-06T21:33:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-883/",
      "url": "https://waylonwalker.com/thought-883/",
      "title": "💭 The Secret of the AWS Outage | The Standup - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"r3bPmtEP9SQ\" title=\"The Secret of the AWS Outage | The Standup\" playlabel=\"Play: The Secret of the AWS Outage | The Standup\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat a great campfire story Casey stumbled into.  Whether any of this is true few will ever know, but its very reasonable that a race condition and a stalled job to apply configuration caused by someone who left the company 10 years ago caused an outage.  I find it hilarious that they call this guy he answers, yup I still know the password, but how do I know you’re legit, I’m not just handing out the password.  Casey did a stand up job telling this story.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"r3bPmtEP9SQ\" title=\"The Secret of the AWS Outage | The Standup\" playlabel=\"Play: The Secret of the AWS Outage | The Standup\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWhat a great campfire story Casey stumbled into.  Whether any of this is true few will ever know, but its very reasonable that a race condition and a stalled job to apply configuration caused by someone who left the company 10 years ago caused an outage.  I find it hilarious that they call this guy he answers, yup I still know the password, but how do I know you're legit, I'm not just handing out the password.  Casey did a stand up job telling this story.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=r3bPmtEP9SQ",
      "date_published": "2025-12-06T21:29:48Z",
      "date_modified": "2025-12-06T21:29:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cloud",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-882/",
      "url": "https://waylonwalker.com/thought-882/",
      "title": "💭 Building the PERFECT Linux PC with Linus Torvalds - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"mfv0V1SxbNA\" title=\"Building the PERFECT Linux PC with Linus Torvalds\" playlabel=\"Play: Building the PERFECT Linux PC with Linus Torvalds\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLinus is \u003ca href=\"/techbrophobic/\" class=\"wikilink\" data-title=\"Techbrophobic\" data-description=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\" data-date=\"2025-11-09\" data-preview=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\"\u003eTechbrophobic\u003c/a\u003e like the rest of us.  This is such an unexpectedly mild take from him.  I expected some threat to the mother of the vibe coder, but he gave a pretty great middle of the road take.  The industry sucks, it smells off, we know a lot wrong with it, it feels like theres a lot more wrong than we know.  But the tools that its making are really good when used in the right ways.  They are not a replacement for anything, they are assistive.  They can lift someone from not knowing how to code to making a small webapp for their use.  Someone who wants to write backend and give them a decent front end, someone who whats to write front end and give them a decent backend.\u003c/p\u003e\n\u003cp\u003eGreat take from someone with more experience than most can ever dream of having, worth a listen.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"mfv0V1SxbNA\" title=\"Building the PERFECT Linux PC with Linus Torvalds\" playlabel=\"Play: Building the PERFECT Linux PC with Linus Torvalds\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nLinus is \u003ca href=\"/techbrophobic/\" class=\"wikilink\" data-title=\"Techbrophobic\" data-description=\"I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...\" data-date=\"2025-11-09\"\u003eTechbrophobic\u003c/a\u003e like the rest of us.  This is such an unexpectedly mild take from him.  I expected some threat to the mother of the vibe coder, but he gave a pretty great middle of the road take.  The industry sucks, it smells off, we know a lot wrong with it, it feels like theres a lot more wrong than we know.  But the tools that its making are really good when used in the right ways.  They are not a replacement for anything, they are assistive.  They can lift someone from not knowing how to code to making a small webapp for their use.  Someone who wants to write backend and give them a decent front end, someone who whats to write front end and give them a decent backend.\n\nGreat take from someone with more experience than most can ever dream of having, worth a listen.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=mfv0V1SxbNA",
      "date_published": "2025-12-06T21:23:37Z",
      "date_modified": "2025-12-06T21:23:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/setup-bambu-studio-in-distrobox/",
      "url": "https://waylonwalker.com/setup-bambu-studio-in-distrobox/",
      "title": "setup bambu-studio in distrobox",
      "content_html": "\u003cp\u003e\u003ca href=\"/gpus-are-awesome/\" class=\"wikilink\" data-title=\"gpus are awesome\" data-description=\"GPU\u0026#39;s are awesome. I just added gpu support to my bambu-studio distrobox and its flying! On my wayland based system the native package has never worked,...\" data-date=\"2025-12-03\" data-preview=\"GPU\u0026#39;s are awesome. I just added gpu support to my bambu-studio distrobox and its flying! On my wayland based system the native package has never worked,...\"\u003egpus are awesome\u003c/a\u003e and I need one for Bambu Studio to be usable in a\ndistrobox.  Adding the \u003ccode\u003e--nvidia\u003c/code\u003e flag to \u003ccode\u003edistrobox create\u003c/code\u003e bind mounts the\nnvidia \u003ccode\u003e/dev/\u003c/code\u003e devices and sets up the necessary environment variables.  Once\nwe are in there are a couple of packages to install to make it work.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox create --name bambu-studio --image archlinux:latest --nvidia\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox enter bambu-studio\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo pacman -S nvidia-utils lib32-nvidia-utils vulkan-icd-loader\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envidia-smi\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eglxinfo \u003cspan class=\"p\"\u003e|\u003c/span\u003e gprep OpenGL\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo pacman -Syu --needed base-devel git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit clone https://aur.archlinux.org/paru-bin.git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e paru-bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emakepkg -si\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S bambustudio-bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebambu-studio\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox-export --app bambu-studio\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\u003ca href=\"/gpus-are-awesome/\" class=\"wikilink\" data-title=\"gpus are awesome\" data-description=\"GPU\u0026#39;s are awesome. I just added gpu support to my bambu-studio distrobox and its flying! On my wayland based system the native package has never worked,...\" data-date=\"2025-12-03\"\u003egpus are awesome\u003c/a\u003e and I need one for Bambu Studio to be usable in a\ndistrobox.  Adding the `--nvidia` flag to `distrobox create` bind mounts the\nnvidia `/dev/` devices and sets up the necessary environment variables.  Once\nwe are in there are a couple of packages to install to make it work.\n\n``` bash\ndistrobox create --name bambu-studio --image archlinux:latest --nvidia\ndistrobox enter bambu-studio\nsudo pacman -S nvidia-utils lib32-nvidia-utils vulkan-icd-loader\nnvidia-smi\nglxinfo | gprep OpenGL\nsudo pacman -Syu --needed base-devel git\ngit clone https://aur.archlinux.org/paru-bin.git\ncd paru-bin\nmakepkg -si\nparu -S bambustudio-bin\n\nbambu-studio\n\ndistrobox-export --app bambu-studio\n```\n\n",
      "summary": "gpus-are-awesome and I need one for Bambu Studio to be usable in a distrobox. Adding the flag to bind mounts the nvidia devices and sets up the necessary...",
      "date_published": "2025-12-06T21:17:39Z",
      "date_modified": "2025-12-06T21:17:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/zeioth-garbage-day-nvim/",
      "url": "https://waylonwalker.com/zeioth-garbage-day-nvim/",
      "title": "⭐ Zeioth garbage-day.nvim",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/Zeioth/garbage-day.nvim\" 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\"\u003egarbage-day.nvim\u003c/a\u003e by \u003ca href=\"https://github.com/Zeioth\" 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\"\u003eZeioth\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eGarbage collector that stops inactive LSP clients to free RAM\u003c/p\u003e\n",
      "content_text": "\nCheck out [garbage-day.nvim](https://github.com/Zeioth/garbage-day.nvim) by [Zeioth](https://github.com/Zeioth). It's a well-crafted project with great potential.\n\nGarbage collector that stops inactive LSP clients to free RAM\n",
      "summary": "Check out garbage-day.nvim by Zeioth. It's a well-crafted project with great potential.",
      "date_published": "2025-12-06T17:04:13Z",
      "date_modified": "2025-12-06T17:04:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-881/",
      "url": "https://waylonwalker.com/thought-881/",
      "title": "💭 snow-fall Web Component—zachleat.com",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.zachleat.com/web/snow-fall/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fopengraph%2Fweb%2Fsnow-fall%2F%3Fcache%3D_20251031/opengraph/\" alt=\"snow-fall Web Component—zachleat.com — A post by Zach Leatherman (zachleat)\" loading=\"lazy\"/ data-glightbox=\"description: snow-fall Web Component—zachleat.com — A post by Zach Leatherman (zachleat)\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003esnow-fall Web Component—zachleat.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA post by Zach Leatherman (zachleat)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eZach Leatherman · zachleat.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a very fun way to add some whimsy to your site, added it to mine immediately when I saw it.  This is what digital gardens are for, Fun, entertainment, and self-exxpression.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.zachleat.com/web/snow-fall/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fopengraph%2Fweb%2Fsnow-fall%2F%3Fcache%3D_20251031/opengraph/\" alt=\"snow-fall Web Component—zachleat.com — A post by Zach Leatherman (zachleat)\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003esnow-fall Web Component—zachleat.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA post by Zach Leatherman (zachleat)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eZach Leatherman \u0026middot; zachleat.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a very fun way to add some whimsy to your site, added it to mine immediately when I saw it.  This is what digital gardens are for, Fun, entertainment, and self-exxpression.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.zachleat.com/web/snow-fall/",
      "date_published": "2025-12-06T15:25:11Z",
      "date_modified": "2025-12-06T15:25:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-880/",
      "url": "https://waylonwalker.com/thought-880/",
      "title": "💭 The 3D Printed Ball Vise Every Creative Should Own - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bQhVKB64r4U\" title=\"The 3D Printed Ball Vise Every Creative Should Own\" playlabel=\"Play: The 3D Printed Ball Vise Every Creative Should Own\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis ball vise Idea is incredible and I want one.  Its a heavy workholding unit that can accept a variety of tools and manipulate things to a lot of angles while working on them.  This looks really good for painting miniatures soldering or generally working on small 3d printed parts that I do.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bQhVKB64r4U\" title=\"The 3D Printed Ball Vise Every Creative Should Own\" playlabel=\"Play: The 3D Printed Ball Vise Every Creative Should Own\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis ball vise Idea is incredible and I want one.  Its a heavy workholding unit that can accept a variety of tools and manipulate things to a lot of angles while working on them.  This looks really good for painting miniatures soldering or generally working on small 3d printed parts that I do.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=bQhVKB64r4U",
      "date_published": "2025-12-06T15:22:45Z",
      "date_modified": "2025-12-06T15:22:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/forebrothers-fight/",
      "url": "https://waylonwalker.com/shots/forebrothers-fight/",
      "title": "Forebrothers Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f9d90fd7-c50b-4276-83ad-70b4318d281b.mp4\" class=\"glightbox-link\" aria-label=\"Forebrothers Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/f9d90fd7-c50b-4276-83ad-70b4318d281b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/f9d90fd7-c50b-4276-83ad-70b4318d281b.mp4\" type=\"video/mp4\"\u003eForebrothers Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eForebrothers Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Forebrothers Fight](https://dropper.waylonwalker.com/file/f9d90fd7-c50b-4276-83ad-70b4318d281b.mp4)\n\n\u003e Forebrothers Fight\n",
      "summary": "Forebrothers Fight",
      "image": "https://dropper.waylonwalker.com/file/f9d90fd7-c50b-4276-83ad-70b4318d281b.mp4",
      "date_published": "2025-12-06T14:55:15Z",
      "date_modified": "2025-12-06T14:55:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/forebrothers-full/",
      "url": "https://waylonwalker.com/shots/forebrothers-full/",
      "title": "Forebrothers Full",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/40caadf6-fae1-4cfd-be73-c515127ed0c4.mp4\" class=\"glightbox-link\" aria-label=\"Forebrothers Full\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/40caadf6-fae1-4cfd-be73-c515127ed0c4.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/40caadf6-fae1-4cfd-be73-c515127ed0c4.mp4\" type=\"video/mp4\"\u003eForebrothers Full\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eForebrothers Full\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Forebrothers Full](https://dropper.waylonwalker.com/file/40caadf6-fae1-4cfd-be73-c515127ed0c4.mp4)\n\n\u003e Forebrothers Full\n",
      "summary": "Forebrothers Full",
      "image": "https://dropper.waylonwalker.com/file/40caadf6-fae1-4cfd-be73-c515127ed0c4.mp4",
      "date_published": "2025-12-06T14:53:00Z",
      "date_modified": "2025-12-06T14:53:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/forebrothers/",
      "url": "https://waylonwalker.com/shots/forebrothers/",
      "title": "Forebrothers",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/07408375-3c1b-4bc8-8e10-76006a898839.mp4\" class=\"glightbox-link\" aria-label=\"Forebrothers\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/07408375-3c1b-4bc8-8e10-76006a898839.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/07408375-3c1b-4bc8-8e10-76006a898839.mp4\" type=\"video/mp4\"\u003eForebrothers\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eForebrothers\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Forebrothers](https://dropper.waylonwalker.com/file/07408375-3c1b-4bc8-8e10-76006a898839.mp4)\n\n\u003e Forebrothers\n",
      "summary": "Forebrothers",
      "image": "https://dropper.waylonwalker.com/file/07408375-3c1b-4bc8-8e10-76006a898839.mp4",
      "date_published": "2025-12-06T14:46:02Z",
      "date_modified": "2025-12-06T14:46:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/bambu-poop-flinger-unjammed/",
      "url": "https://waylonwalker.com/shots/bambu-poop-flinger-unjammed/",
      "title": "Bambu Poop Flinger Unjammed",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5fdd4b5b-8651-4f37-9e56-1b10c3b276eb.mp4\" class=\"glightbox-link\" aria-label=\"Bambu Poop Flinger Unjammed\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/5fdd4b5b-8651-4f37-9e56-1b10c3b276eb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/5fdd4b5b-8651-4f37-9e56-1b10c3b276eb.mp4\" type=\"video/mp4\"\u003eBambu Poop Flinger Unjammed\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere is a video clip of my Bambu A1 poop flinger fixed and not jamming during operation after my fix.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Bambu Poop Flinger Unjammed](https://dropper.waylonwalker.com/file/5fdd4b5b-8651-4f37-9e56-1b10c3b276eb.mp4)\n\n\u003e Here is a video clip of my Bambu A1 poop flinger fixed and not jamming during operation after my fix.\n\n",
      "summary": "Here is a video clip of my Bambu A1 poop flinger fixed and not jamming during operation after my fix.",
      "image": "https://dropper.waylonwalker.com/file/5fdd4b5b-8651-4f37-9e56-1b10c3b276eb.mp4",
      "date_published": "2025-12-06T11:13:07Z",
      "date_modified": "2025-12-06T11:13:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/bambu-poop-flinger-jammed/",
      "url": "https://waylonwalker.com/shots/bambu-poop-flinger-jammed/",
      "title": "Bambu Poop Flinger Jammed",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/4225fa8a-65cd-48fe-81aa-31ad3ac86dc4.webp\" class=\"glightbox-link\" aria-label=\"bambu poop flinger jammed\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/4225fa8a-65cd-48fe-81aa-31ad3ac86dc4.webp\" alt=\"bambu poop flinger jammed\"/ data-glightbox=\"description: bambu poop flinger jammed\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMy bambu A1 poop flinger has been getting jammed up for awhile now, here is an image of it in the jammed position.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![bambu poop flinger jammed](https://dropper.waylonwalker.com/file/4225fa8a-65cd-48fe-81aa-31ad3ac86dc4.webp)\n\n\u003e My bambu A1 poop flinger has been getting jammed up for awhile now, here is an image of it in the jammed position.\n\n",
      "summary": "My bambu A1 poop flinger has been getting jammed up for awhile now, here is an image of it in the jammed position.",
      "image": "https://dropper.waylonwalker.com/file/4225fa8a-65cd-48fe-81aa-31ad3ac86dc4.webp",
      "date_published": "2025-12-06T11:11:53Z",
      "date_modified": "2025-12-06T11:11:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/git-worktrees-are-needed/",
      "url": "https://waylonwalker.com/git-worktrees-are-needed/",
      "title": "git worktrees are needed",
      "content_html": "\u003cp\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e 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/the-wrong-reasons-to-run-kubernetes-in-your-homelab/",
      "url": "https://waylonwalker.com/the-wrong-reasons-to-run-kubernetes-in-your-homelab/",
      "title": "The Wrong Reasons To Run Kubernetes In Your Homelab",
      "content_html": "\u003cp\u003eRunning kubernetes in your \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e is complex, time consuming, there are almost\nno docs to help you (homelab focused docs for things you want to install), and\nnothing is copy paste.  You have to make everything happen yourself.\u003c/p\u003e\n\u003ch2 id=\"the-wrong-reasons-to-run-kubernetes-in-your-homelab\"\u003eThe Wrong Reasons To Run Kubernetes In Your Homelab \u003ca href=\"#the-wrong-reasons-to-run-kubernetes-in-your-homelab\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eI run compose and think kubernetes is the next logical step\u003c/li\u003e\n\u003cli\u003eTechno Tim runs it\u003c/li\u003e\n\u003cli\u003eI heard it’s what cool kids do\u003c/li\u003e\n\u003cli\u003eKubernetes BTW\u003c/li\u003e\n\u003cli\u003eTalos Linux looks cool\u003c/li\u003e\n\u003cli\u003eI found a cool helm chart on GitHub\u003c/li\u003e\n\u003cli\u003eI need scale\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThere are also \u003ca href=\"/the-right-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Right Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.\" data-date=\"2025-12-10\" data-preview=\"Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.\"\u003eThe Right Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e.\u003c/p\u003e\n\u003ch2 id=\"i-run-compose-and-think-kubernetes-is-the-next-logical-step\"\u003eI run compose and think kubernetes is the next logical step \u003ca href=\"#i-run-compose-and-think-kubernetes-is-the-next-logical-step\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo it’s not.  It’s much different than running docker, compose, swarm.  It’s\nmeant for scale, it’s complex, it’s made for enterprise, not your local\ndevelopment or your homelab.  It can do these things, it can do them quite\nwell, but it’s not the target audience.\u003c/p\u003e\n\u003ch2 id=\"techno-tim-runs-it\"\u003eTechno Tim runs it \u003ca href=\"#techno-tim-runs-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eI heard it’s what cool kids do\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eYou need to rethink who the cool kids are, touch some grass.  Tim also does it\nfor his job, he likes it, he knows it, he wants to lean on it and learn more.\u003c/p\u003e\n\u003ch2 id=\"kubernetes-btw\"\u003eKubernetes BTW \u003ca href=\"#kubernetes-btw\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eKubernetes does not make you look cool, it makes you look like you are trying\nto over optimize and over engineer your life.  It’s not worth it, in fact\nnothing in life is worth worrying about what everyone else thinks of you.\u003c/p\u003e\n\u003ch2 id=\"talos-linux-looks-cool\"\u003eTalos Linux looks cool \u003ca href=\"#talos-linux-looks-cool\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTalos is an S tier OS wherever you deploy it.  It is a secure, minimal,\nkubernetes first OS.  They also have some really great people working there\nputting Talos in some really cool places like\n\u003ca href=\"https://justingarrison.com/blog/petaflop-cluster/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justingarrison.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justingarrison.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ebackpack\u003c/a\u003e or \u003ca href=\"https://justingarrison.com/cubernetes/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justingarrison.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justingarrison.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eApple Power\nMac\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"i-found-a-cool-helm-chart-on-github\"\u003eI found a cool helm chart on GitHub \u003ca href=\"#i-found-a-cool-helm-chart-on-github\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo you didn’t.  Everything in homelab is compose first.  A few things have a\nk8s option, but almost nothing is k8s first.\u003c/p\u003e\n\u003ch2 id=\"i-need-scale\"\u003eI need scale \u003ca href=\"#i-need-scale\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo.  You’re homelab does not need scale.  If you think it does, you have some\nreal shit hardware, some bad optimizations, or somehow you have a startup you\nneed to launch cause you got more users than most.\u003c/p\u003e\n",
      "content_text": "\nRunning kubernetes in your homelab is complex, time consuming, there are almost\nno docs to help you (homelab focused docs for things you want to install), and\nnothing is copy paste.  You have to make everything happen yourself.\n\n## The Wrong Reasons To Run Kubernetes In Your Homelab\n\n* I run compose and think kubernetes is the next logical step\n* Techno Tim runs it\n* I heard it's what cool kids do\n* Kubernetes BTW\n* Talos Linux looks cool\n* I found a cool helm chart on GitHub\n* I need scale\n\nThere are also \u003ca href=\"/the-right-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Right Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.\" data-date=\"2025-12-10\"\u003eThe Right Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e.\n\n## I run compose and think kubernetes is the next logical step\n\nNo it's not.  It's much different than running docker, compose, swarm.  It's\nmeant for scale, it's complex, it's made for enterprise, not your local\ndevelopment or your homelab.  It can do these things, it can do them quite\nwell, but it's not the target audience.\n\n## Techno Tim runs it\n\n_I heard it's what cool kids do_\n\nYou need to rethink who the cool kids are, touch some grass.  Tim also does it\nfor his job, he likes it, he knows it, he wants to lean on it and learn more.\n\n## Kubernetes BTW\n\nKubernetes does not make you look cool, it makes you look like you are trying\nto over optimize and over engineer your life.  It's not worth it, in fact\nnothing in life is worth worrying about what everyone else thinks of you.\n\n## Talos Linux looks cool\n\nTalos is an S tier OS wherever you deploy it.  It is a secure, minimal,\nkubernetes first OS.  They also have some really great people working there\nputting Talos in some really cool places like\n[backpack](https://justingarrison.com/blog/petaflop-cluster/) or [Apple Power\nMac](https://justingarrison.com/cubernetes/)\n\n## I found a cool helm chart on GitHub\n\nNo you didn't.  Everything in homelab is compose first.  A few things have a\nk8s option, but almost nothing is k8s first.\n\n## I need scale\n\nNo.  You're homelab does not need scale.  If you think it does, you have some\nreal shit hardware, some bad optimizations, or somehow you have a startup you\nneed to launch cause you got more users than most.\n",
      "summary": "Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...",
      "date_published": "2025-12-06T09:46:47Z",
      "date_modified": "2025-12-06T09:46:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "homelab",
        "kubernetes",
        "self-hosted"
      ]
    },
    {
      "id": "https://waylonwalker.com/my-home-row/",
      "url": "https://waylonwalker.com/my-home-row/",
      "title": "my home row",
      "content_html": "\u003cp\u003eMy home row layout. It’s not quite home row mods.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/4a7971fc-8d22-49b9-ae77-5551f5c8d914.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/4a7971fc-8d22-49b9-ae77-5551f5c8d914.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/file/fd74f80e-ff5e-4548-8419-bd407144bb6c.excalidraw\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dropper.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dropper.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://dropper.waylonwalker.com/file/fd74f80e-ff5e-4548-8419-bd407144bb6c.excalidraw\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nMy home row layout. It's not quite home row mods.\n\n![](https://dropper.waylonwalker.com/file/4a7971fc-8d22-49b9-ae77-5551f5c8d914.webp)\n\nhttps://dropper.waylonwalker.com/file/fd74f80e-ff5e-4548-8419-bd407144bb6c.excalidraw\n",
      "summary": "My home row layout. It's not quite home row mods.",
      "date_published": "2025-12-05T21:27:55Z",
      "date_modified": "2025-12-05T21:27:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/i-got-the-kubernetes-in-my-basement-autism/",
      "url": "https://waylonwalker.com/i-got-the-kubernetes-in-my-basement-autism/",
      "title": "I got the kubernetes in my basement autism",
      "content_html": "\u003cp\u003eWhat flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/49b356bc-f32c-4332-85ea-0eb2b7860091.webp\" class=\"glightbox-link\" aria-label=\"My homelab as June 2025\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/49b356bc-f32c-4332-85ea-0eb2b7860091.webp\" alt=\"My homelab as June 2025\"/ data-glightbox=\"description: My homelab as June 2025\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/shorts/5Cac-cf5MOE\" 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\"\u003ehttps://www.youtube.com/shorts/5Cac-cf5MOE\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nWhat flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\n\n![My homelab as June 2025](https://dropper.waylonwalker.com/file/49b356bc-f32c-4332-85ea-0eb2b7860091.webp)\n\nhttps://www.youtube.com/shorts/5Cac-cf5MOE\n",
      "summary": "What flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.",
      "date_published": "2025-12-05T21:13:03Z",
      "date_modified": "2025-12-05T21:13:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ping"
      ]
    },
    {
      "id": "https://waylonwalker.com/k3s-system-upgrade-minor-by-minor/",
      "url": "https://waylonwalker.com/k3s-system-upgrade-minor-by-minor/",
      "title": "k3s system-upgrade minor by minor",
      "content_html": "\u003cp\u003eThe k3s system-upgrade controller is a fantastic tool for upgrading k3s\nautomatically.  It has done a fantastic job for me every time I’ve used it.\nToday I ran it on a cluster that needed to upgrade several minors and I\nlearned that the controller does not pick up on changes to the channel url if\nyou change from minor to minor.\u003c/p\u003e\n\u003cp\u003eThe solution I came up with was to name the plan with the version it supports.\nThen on each patch upgrade, change both the plan name and the channel.  I use\ngitops with argocd, it automcatically cleaned up old plans, created new plans,\nand the system-upgrade-controller picked up the plan and started applying\nimmediately.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# Server plan\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eupgrade.cattle.io/v1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ePlan\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eserver-plan-v1.33\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c\"\u003e# \u0026lt;- This is important if you want to change the channel name\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enamespace\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esystem-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003econcurrency\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ecordon\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enodeSelector\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ematchExpressions\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003enode-role.kubernetes.io/control-plane\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eoperator\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eIn\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003evalues\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"s2\"\u003e\u0026#34;true\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eserviceAccountName\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esystem-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eupgrade\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003erancher/k3s-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003echannel\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://update.k3s.io/v1-release/channels/v1.33\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# Agent plan\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eupgrade.cattle.io/v1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ePlan\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eagent-plan-v1.33\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c\"\u003e# \u0026lt;- This is important if you want to change the channel name\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enamespace\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esystem-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003econcurrency\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ecordon\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enodeSelector\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ematchExpressions\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ekey\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003enode-role.kubernetes.io/control-plane\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eoperator\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eDoesNotExist\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eprepare\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eargs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"l\"\u003eprepare\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"l\"\u003eserver-plan\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003erancher/k3s-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eserviceAccountName\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esystem-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eupgrade\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003erancher/k3s-upgrade\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003echannel\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://update.k3s.io/v1-release/channels/v1.33\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI’d love to see a better way if you have a way to upgrade through minors, or\nmanually control the minor of your cluster let me know.\u003c/p\u003e\n",
      "content_text": "\nThe k3s system-upgrade controller is a fantastic tool for upgrading k3s\nautomatically.  It has done a fantastic job for me every time I've used it.\nToday I ran it on a cluster that needed to upgrade several minors and I\nlearned that the controller does not pick up on changes to the channel url if\nyou change from minor to minor.  \n\nThe solution I came up with was to name the plan with the version it supports.\nThen on each patch upgrade, change both the plan name and the channel.  I use\ngitops with argocd, it automcatically cleaned up old plans, created new plans,\nand the system-upgrade-controller picked up the plan and started applying\nimmediately.\n\n\n``` yaml\n# Server plan\napiVersion: upgrade.cattle.io/v1\nkind: Plan\nmetadata:\n  name: server-plan-v1.33 # \u003c- This is important if you want to change the channel name\n  namespace: system-upgrade\nspec:\n  concurrency: 1\n  cordon: true\n  nodeSelector:\n    matchExpressions:\n    - key: node-role.kubernetes.io/control-plane\n      operator: In\n      values:\n      - \"true\"\n  serviceAccountName: system-upgrade\n  upgrade:\n    image: rancher/k3s-upgrade\n  channel: https://update.k3s.io/v1-release/channels/v1.33\n---\n# Agent plan\napiVersion: upgrade.cattle.io/v1\nkind: Plan\nmetadata:\n  name: agent-plan-v1.33 # \u003c- This is important if you want to change the channel name\n  namespace: system-upgrade\nspec:\n  concurrency: 1\n  cordon: true\n  nodeSelector:\n    matchExpressions:\n    - key: node-role.kubernetes.io/control-plane\n      operator: DoesNotExist\n  prepare:\n    args:\n    - prepare\n    - server-plan\n    image: rancher/k3s-upgrade\n  serviceAccountName: system-upgrade\n  upgrade:\n    image: rancher/k3s-upgrade\n  channel: https://update.k3s.io/v1-release/channels/v1.33\n```\n\nI'd love to see a better way if you have a way to upgrade through minors, or\nmanually control the minor of your cluster let me know.\n",
      "summary": "The k3s system-upgrade controller is a fantastic tool for upgrading k3s automatically. It has done a fantastic job for me every time I've used it. Today I...",
      "date_published": "2025-12-05T09:25:39Z",
      "date_modified": "2025-12-05T09:25:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "k3s",
        "kubernetes"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-879/",
      "url": "https://waylonwalker.com/thought-879/",
      "title": "💭 Deleting Code for Performance – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/12/04/deleting-code-for-performance/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2025-12-04-deleting-code-for-performance.png\" alt=\"Deleting Code for Performance — The one where I clean up an asynchronous mess\" loading=\"lazy\"/ data-glightbox=\"description: Deleting Code for Performance — The one where I clean up an asynchronous mess\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDeleting Code for Performance\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I clean up an asynchronous mess\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI did not realize that David’s site was built on a homegrown Static Site Generator.  As someone who also does this myself I appreciate the effort.  I build my site on \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e.  It started as a project to learn a set of tools and has become a project that I depend on everywhere and cant put down.  It’s a great tool, but you probably shouldn’t use it.  Anyways, I feel this \u003cstrong\u003ereally\u003c/strong\u003e shows on David’s site. His site is filled with custom features that make it very unique, one off, and always a pleasure to read.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/12/04/deleting-code-for-performance/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2025-12-04-deleting-code-for-performance.png\" alt=\"Deleting Code for Performance — The one where I clean up an asynchronous mess\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDeleting Code for Performance\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I clean up an asynchronous mess\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI did not realize that David's site was built on a homegrown Static Site Generator.  As someone who also does this myself I appreciate the effort.  I build my site on \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e.  It started as a project to learn a set of tools and has become a project that I depend on everywhere and cant put down.  It's a great tool, but you probably shouldn't use it.  Anyways, I feel this **really** shows on David's site. His site is filled with custom features that make it very unique, one off, and always a pleasure to read.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2025/12/04/deleting-code-for-performance/",
      "date_published": "2025-12-04T16:12:19Z",
      "date_modified": "2025-12-04T16:12:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "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\" aria-label=\"Open image\"\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\u003cfigcaption\u003e\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\u003c/figcaption\u003e\u003c/figure\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/searlsco-posse_party/",
      "url": "https://waylonwalker.com/searlsco-posse_party/",
      "title": "⭐ searlsco posse_party",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/searlsco/posse_party\" 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\"\u003eposse_party\u003c/a\u003e by \u003ca href=\"https://github.com/searlsco\" 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\"\u003esearlsco\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eQuit social media by posting more\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [posse_party](https://github.com/searlsco/posse_party) by [searlsco](https://github.com/searlsco), and it's truly impressive.\n\nQuit social media by posting more\n",
      "summary": "I recently discovered posse_party by searlsco, and it's truly impressive.",
      "date_published": "2025-12-03T03:22:49Z",
      "date_modified": "2025-12-03T03:22:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-877/",
      "url": "https://waylonwalker.com/thought-877/",
      "title": "💭 Self-hosting Github",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"MhZQTnfo8Ok\" title=\"Self-hosting Github\" playlabel=\"Play: Self-hosting Github\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eNiche companies will rise from the ashes.  Companies that want to build good products for customers.  Companies that will get hundreds of users.  They will treat them right and make enough money to support themselves, maybe.\u003c/p\u003e\n\u003cp\u003eAlongside them we will \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself host\u003c/a\u003e.  We will run our own services out of our basement.  There will be downtime, but its ok.  We will enjoy ourselves. We will tell everyone how much better it is BTW\u003c/p\u003e\n\u003cp\u003eNext to that is a firehose of shit piling back into the circular snakes mouth as all of your data flows freely between any company that can get their hands on it.  These companies will spend and make money hand over fist. Most people will continue to use these services until enough is enough and unplug from everything.\u003c/p\u003e\n\u003cp\u003eIn this world I don’t see how we sustain the amount of engineers we have created.  Small companies run lean, small, and allow slow organic growth happen.\u003c/p\u003e\n\u003cp\u003eIt will be interesting to see play out.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/95ae2a95-308b-4d1d-bff8-8ce6194db132.webp\" class=\"glightbox-link\" aria-label=\"Open image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/95ae2a95-308b-4d1d-bff8-8ce6194db132.webp\" alt=\"\"/ data-glightbox=\"description: \"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"MhZQTnfo8Ok\" title=\"Self-hosting Github\" playlabel=\"Play: Self-hosting Github\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nNiche companies will rise from the ashes.  Companies that want to build good products for customers.  Companies that will get hundreds of users.  They will treat them right and make enough money to support themselves, maybe.\n\nAlongside them we will self host.  We will run our own services out of our basement.  There will be downtime, but its ok.  We will enjoy ourselves. We will tell everyone how much better it is BTW\n\nNext to that is a firehose of shit piling back into the circular snakes mouth as all of your data flows freely between any company that can get their hands on it.  These companies will spend and make money hand over fist. Most people will continue to use these services until enough is enough and unplug from everything.\n\nIn this world I don't see how we sustain the amount of engineers we have created.  Small companies run lean, small, and allow slow organic growth happen.\n\nIt will be interesting to see play out.\n\n![](https://dropper.waylonwalker.com/file/95ae2a95-308b-4d1d-bff8-8ce6194db132.webp)\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/MhZQTnfo8Ok",
      "date_published": "2025-12-02T03:45:10Z",
      "date_modified": "2025-12-02T03:45:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "self-hosting",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/zerolu-awesome-nanobanana-pro/",
      "url": "https://waylonwalker.com/zerolu-awesome-nanobanana-pro/",
      "title": "⭐ ZeroLu awesome-nanobanana-pro",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/ZeroLu/awesome-nanobanana-pro\" 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\"\u003eawesome-nanobanana-pro\u003c/a\u003e from \u003ca href=\"https://github.com/ZeroLu\" 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\"\u003eZeroLu\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e🚀 An awesome list of curated Nano Banana pro prompts and examples. Your go-to resource for mastering prompt engineering and exploring the creative potential of the Nano banana pro(Nano banana 2) AI image model.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [awesome-nanobanana-pro](https://github.com/ZeroLu/awesome-nanobanana-pro) from [ZeroLu](https://github.com/ZeroLu).\n\n🚀 An awesome list of curated Nano Banana pro prompts and examples. Your go-to resource for mastering prompt engineering and exploring the creative potential of the Nano banana pro(Nano banana 2) AI image model.\n",
      "summary": "I'm impressed by awesome-nanobanana-pro from ZeroLu.",
      "date_published": "2025-12-02T02:38:25Z",
      "date_modified": "2025-12-02T02:38:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-876/",
      "url": "https://waylonwalker.com/thought-876/",
      "title": "💭 Malicious Traffic and Static Sites - Jim Nielsen’s Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/malicious-traffic-on-static-sites/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMalicious Traffic and Static Sites\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThese look like fun endpoints to add anti-maliciously, give good stuff for the sleezy things to read.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/malicious-traffic-on-static-sites/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMalicious Traffic and Static Sites\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThese look like fun endpoints to add anti-maliciously, give good stuff for the sleezy things to read.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/2025/malicious-traffic-on-static-sites/",
      "date_published": "2025-12-01T21:41:03Z",
      "date_modified": "2025-12-01T21:41:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-875/",
      "url": "https://waylonwalker.com/thought-875/",
      "title": "💭 A ChatGPT prompt equals about 5.1 seconds of Netflix",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Nov/29/chatgpt-netflix\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA ChatGPT prompt equals about 5.1 seconds of Netflix\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn June 2025 Sam Altman claimed about ChatGPT that \u0026#34;the average query uses about 0.34 watt-hours\u0026#34;. In March 2020 George Kamiya of the International Energy Agency estimated that \u0026#34;streaming a …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis feels very promising for the future as we enter a world that is more and more dependent on AI that inference is so cheap.  I did not understand the scale to how much cheaper inference is compared to training.  As we get better with training I imagine this gets significantly better as well.  I know they all claim to be profitable on inference, but scrolling through Simon’s feed here you see several articles on the stark difference.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Nov/29/chatgpt-netflix\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA ChatGPT prompt equals about 5.1 seconds of Netflix\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn June 2025 Sam Altman claimed about ChatGPT that \u0026#34;the average query uses about 0.34 watt-hours\u0026#34;. In March 2020 George Kamiya of the International Energy Agency estimated that \u0026#34;streaming a …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis feels very promising for the future as we enter a world that is more and more dependent on AI that inference is so cheap.  I did not understand the scale to how much cheaper inference is compared to training.  As we get better with training I imagine this gets significantly better as well.  I know they all claim to be profitable on inference, but scrolling through Simon's feed here you see several articles on the stark difference.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Nov/29/chatgpt-netflix",
      "date_published": "2025-12-01T21:34:30Z",
      "date_modified": "2025-12-01T21:34:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-874/",
      "url": "https://waylonwalker.com/thought-874/",
      "title": "💭 A pretty good email scam",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/email-settings-scam/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cassidoo.co/og-image/email-settings-scam.png\" alt=\"A pretty good email scam — How I helped family recover from a clever email scam that hid behind sneaky account settings\" loading=\"lazy\"/ data-glightbox=\"description: A pretty good email scam — How I helped family recover from a clever email scam that hid behind sneaky account settings\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA pretty good email scam\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHow I helped family recover from a clever email scam that hid behind sneaky account settings\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003escams suck.  This is a good story, sorry to hear that it happened to a real person.  If you or anyone in your family has a compromised email, add these to your checklist to fix.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eautomatic forwards\u003c/li\u003e\n\u003cli\u003e2-factor email\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/email-settings-scam/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cassidoo.co/og-image/email-settings-scam.png\" alt=\"A pretty good email scam — How I helped family recover from a clever email scam that hid behind sneaky account settings\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA pretty good email scam\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHow I helped family recover from a clever email scam that hid behind sneaky account settings\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nscams suck.  This is a good story, sorry to hear that it happened to a real person.  If you or anyone in your family has a compromised email, add these to your checklist to fix. \n\n* automatic forwards\n* 2-factor email\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://cassidoo.co/post/email-settings-scam/",
      "date_published": "2025-12-01T18:22:02Z",
      "date_modified": "2025-12-01T18:22:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tech",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-873/",
      "url": "https://waylonwalker.com/thought-873/",
      "title": "💭 2025-11-27 Notes",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/2025-11-27-notes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"2025-11-27 Notes | Nic Payne — yesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It\u0026#39;s not quite configurable yet This will allow an easy way to setup\" loading=\"lazy\"/ data-glightbox=\"description: 2025-11-27 Notes | Nic Payne — yesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It\u0026#39;s not quite configurable yet This will allow an easy way to setup\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e2025-11-27 Notes | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eyesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It\u0026#39;s not quite configurable yet This will allow an easy way to setup \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eNic is also building out a similar workspaces script.  This feels like such a great thing to have ai work on fully customized tools for your personal workflow.  Also Nice shout out!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/2025-11-27-notes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"2025-11-27 Notes | Nic Payne — yesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It\u0026#39;s not quite configurable yet This will allow an easy way to setup\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e2025-11-27 Notes | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eyesterday: [[2025-11-26-notes]] Big Changes Got my workspaces script in working order It\u0026#39;s not quite configurable yet This will allow an easy way to setup \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNic is also building out a similar workspaces script.  This feels like such a great thing to have ai work on fully customized tools for your personal workflow.  Also Nice shout out!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/2025-11-27-notes/",
      "date_published": "2025-12-01T17:28:13Z",
      "date_modified": "2025-12-01T17:28:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/freika-dawarich/",
      "url": "https://waylonwalker.com/freika-dawarich/",
      "title": "⭐ Freika dawarich",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/Freika/dawarich\" 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\"\u003edawarich\u003c/a\u003e by \u003ca href=\"https://github.com/Freika\" 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\"\u003eFreika\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eYour favorite self-hostable alternative to Google Timeline (Google Location History)\u003c/p\u003e\n",
      "content_text": "\nCheck out [dawarich](https://github.com/Freika/dawarich) by [Freika](https://github.com/Freika). It's a well-crafted project with great potential.\n\nYour favorite self-hostable alternative to Google Timeline (Google Location History)\n",
      "summary": "Check out dawarich by Freika. It's a well-crafted project with great potential.",
      "date_published": "2025-12-01T14:15:22Z",
      "date_modified": "2025-12-01T14:15:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-872/",
      "url": "https://waylonwalker.com/thought-872/",
      "title": "💭 K8s Diagram Builder - Free Visual Kubernetes Architecture Desi...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"http://k8sdiagram.fun/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://k8sdiagram.fun/banner.png\" alt=\"K8s Diagram Builder - Visual Kubernetes YAML Generator — Free Kubernetes diagram builder with drag-and-drop design. Auto-generate production-ready YAML for Ingress, Services, Deployments, ConfigMaps, Secrets \u0026amp; more. No signup required.\" loading=\"lazy\"/ data-glightbox=\"description: K8s Diagram Builder - Visual Kubernetes YAML Generator — Free Kubernetes diagram builder with drag-and-drop design. Auto-generate production-ready YAML for Ingress, Services, Deployments, ConfigMaps, Secrets \u0026amp; more. No signup required.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eK8s Diagram Builder - Visual Kubernetes YAML Generator\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFree Kubernetes diagram builder with drag-and-drop design. Auto-generate production-ready YAML for Ingress, Services, Deployments, ConfigMaps, Secrets \u0026amp; more. No signup required.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eK8s Diagram Builder · k8sdiagram.fun\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis looks like great prototyping tool for k8s. I too often ask ai to get me going with the things I need.  I’ve used k8s long enough that I can generally remember all the things I need, roughly where they go, would probably forget a few things and need to iterate, but I cannot remember exactly what goes where and need examples at a minimum.  I need to give this a go from desktop and see if it will work for me.  Right now looking through mobile looks promising.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"http://k8sdiagram.fun/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://k8sdiagram.fun/banner.png\" alt=\"K8s Diagram Builder - Visual Kubernetes YAML Generator — Free Kubernetes diagram builder with drag-and-drop design. Auto-generate production-ready YAML for Ingress, Services, Deployments, ConfigMaps, Secrets \u0026amp; more. No signup required.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eK8s Diagram Builder - Visual Kubernetes YAML Generator\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFree Kubernetes diagram builder with drag-and-drop design. Auto-generate production-ready YAML for Ingress, Services, Deployments, ConfigMaps, Secrets \u0026amp; more. No signup required.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eK8s Diagram Builder \u0026middot; k8sdiagram.fun\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis looks like great prototyping tool for k8s. I too often ask ai to get me going with the things I need.  I've used k8s long enough that I can generally remember all the things I need, roughly where they go, would probably forget a few things and need to iterate, but I cannot remember exactly what goes where and need examples at a minimum.  I need to give this a go from desktop and see if it will work for me.  Right now looking through mobile looks promising.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!http://k8sdiagram.fun/",
      "date_published": "2025-12-01T14:10:55Z",
      "date_modified": "2025-12-01T14:10:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/apple-boxes-complete/",
      "url": "https://waylonwalker.com/shots/apple-boxes-complete/",
      "title": "Apple Boxes Complete",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/af7b072c-e40b-42fd-b243-8b09ba652a75.webp\" class=\"glightbox-link\" aria-label=\"Apple Boxes Complete\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/af7b072c-e40b-42fd-b243-8b09ba652a75.webp\" alt=\"Apple Boxes Complete\"/ data-glightbox=\"description: Apple Boxes Complete\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA complete stack of apple boxes for the local theater.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Apple Boxes Complete](https://dropper.waylonwalker.com/file/af7b072c-e40b-42fd-b243-8b09ba652a75.webp)\n\n\u003e A complete stack of apple boxes for the local theater.\n\n",
      "summary": "A complete stack of apple boxes for the local theater.",
      "image": "https://dropper.waylonwalker.com/file/af7b072c-e40b-42fd-b243-8b09ba652a75.webp",
      "date_published": "2025-11-28T20:39:11Z",
      "date_modified": "2025-11-28T20:39:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/design-for-bosch-colt-dust-collection-v1/",
      "url": "https://waylonwalker.com/shots/design-for-bosch-colt-dust-collection-v1/",
      "title": "Design For Bosch Colt Dust Collection V1",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/f7a46bc1-60fb-48c7-94bb-5e9bdb4b5f04.webp\" class=\"glightbox-link\" aria-label=\"Design for bosch colt dust collection v1\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/f7a46bc1-60fb-48c7-94bb-5e9bdb4b5f04.webp\" alt=\"Design for bosch colt dust collection v1\"/ data-glightbox=\"description: Design for bosch colt dust collection v1\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eIsometric view of the Bosch Colt dust collection design.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Design for bosch colt dust collection v1](https://dropper.waylonwalker.com/file/f7a46bc1-60fb-48c7-94bb-5e9bdb4b5f04.webp)\n\n\u003e Isometric view of the Bosch Colt dust collection design.\n\n",
      "summary": "Isometric view of the Bosch Colt dust collection design.",
      "image": "https://dropper.waylonwalker.com/file/f7a46bc1-60fb-48c7-94bb-5e9bdb4b5f04.webp",
      "date_published": "2025-11-28T20:36:48Z",
      "date_modified": "2025-11-28T20:36:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dust-collection-for-bosch-colt-v0/",
      "url": "https://waylonwalker.com/shots/dust-collection-for-bosch-colt-v0/",
      "title": "Dust Collection For Bosch Colt V0",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/3fe2aba3-30bc-4734-b75e-1c0b7e7c3d18.webp\" class=\"glightbox-link\" aria-label=\"Dust Collection for Bosch Colt v0\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/3fe2aba3-30bc-4734-b75e-1c0b7e7c3d18.webp\" alt=\"Dust Collection for Bosch Colt v0\"/ data-glightbox=\"description: Dust Collection for Bosch Colt v0\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eDust Collection for Bosch Colt router v0 made of 3/4\u0026#34; plywood.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/d8a8e8ec-8368-4100-9708-e0b6e0095105.webp\" class=\"glightbox-link\" aria-label=\"Dust Collection for Bosch Colt v0 installed in the router, showing the back\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/d8a8e8ec-8368-4100-9708-e0b6e0095105.webp\" alt=\"Dust Collection for Bosch Colt v0 installed in the router, showing the back\"/ data-glightbox=\"description: Dust Collection for Bosch Colt v0 installed in the router, showing the back\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eInstalled in the router and showing the back\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/6afc7f52-5842-47ca-a67b-1b6792e39c33.webp\" class=\"glightbox-link\" aria-label=\"Dust Collection for Bosch Colt v0 installed in the router, showing the front\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/6afc7f52-5842-47ca-a67b-1b6792e39c33.webp\" alt=\"Dust Collection for Bosch Colt v0 installed in the router, showing the front\"/ data-glightbox=\"description: Dust Collection for Bosch Colt v0 installed in the router, showing the front\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eInstalled in the router and showing the front\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dust Collection for Bosch Colt v0](https://dropper.waylonwalker.com/file/3fe2aba3-30bc-4734-b75e-1c0b7e7c3d18.webp)\n\n\u003e Dust Collection for Bosch Colt router v0 made of 3/4\" plywood.\n\n![Dust Collection for Bosch Colt v0 installed in the router, showing the back](https://dropper.waylonwalker.com/file/d8a8e8ec-8368-4100-9708-e0b6e0095105.webp)\n\n\u003e Installed in the router and showing the back\n\n![Dust Collection for Bosch Colt v0 installed in the router, showing the front](https://dropper.waylonwalker.com/file/6afc7f52-5842-47ca-a67b-1b6792e39c33.webp)\n\n\u003e Installed in the router and showing the front\n",
      "summary": "Dust Collection for Bosch Colt router v0 made of 3/4\" plywood.",
      "image": "https://dropper.waylonwalker.com/file/3fe2aba3-30bc-4734-b75e-1c0b7e7c3d18.webp",
      "date_published": "2025-11-28T20:32:47Z",
      "date_modified": "2025-11-28T20:32:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/chr15m-runprompt/",
      "url": "https://waylonwalker.com/chr15m-runprompt/",
      "title": "⭐ chr15m runprompt",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/chr15m\" 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\"\u003echr15m\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/chr15m/runprompt\" 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\"\u003erunprompt\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eRun LLM prompts from your shell\u003c/p\u003e\n",
      "content_text": "\n[chr15m](https://github.com/chr15m) has done a fantastic job with [runprompt](https://github.com/chr15m/runprompt). Highly recommend taking a look.\n\nRun LLM prompts from your shell\n",
      "summary": "chr15m has done a fantastic job with runprompt. Highly recommend taking a look.",
      "date_published": "2025-11-28T19:33:57Z",
      "date_modified": "2025-11-28T19:33:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/columns-env-var/",
      "url": "https://waylonwalker.com/columns-env-var/",
      "title": "COLUMNS env var",
      "content_html": "\u003cp\u003esetting \u003ccode\u003eCOLUMNS\u003c/code\u003e env var to a number greater than 0 will make the terminal resize to that number of columns.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eCOLUMNS\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e80\u003c/span\u003e uvx --from rich-cli rich myscript.py\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eNot all programs respct the \u003ccode\u003eCOLUMNS\u003c/code\u003e env var, but rich does, and a lot of\nstuff I’m building uses rich.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eI discovered this when I was trying to make a low effort readme generated from\nthe code, but did not depend on the size of terminal it was ran on.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# justfile\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ereadme:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;# Workspaces\u0026#34;\u003c/span\u003e \u0026gt; README.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e \u0026gt;\u0026gt; README.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;``` bash\u0026#39;\u003c/span\u003e \u0026gt;\u0026gt; README.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nv\"\u003eCOLUMNS\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"m\"\u003e80\u003c/span\u003e ./workspaces.py --help \u0026gt;\u0026gt; README.md\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;```\u0026#39;\u003c/span\u003e \u0026gt;\u0026gt; README.md\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nsetting `COLUMNS` env var to a number greater than 0 will make the terminal resize to that number of columns.\n\n``` bash\nCOLUMNS=80 uvx --from rich-cli rich myscript.py\n```\n\n!!! NOTE\n\n    Not all programs respct the `COLUMNS` env var, but rich does, and a lot of\n    stuff I'm building uses rich.\n\nI discovered this when I was trying to make a low effort readme generated from\nthe code, but did not depend on the size of terminal it was ran on.\n\n``` bash\n# justfile\nreadme:\n    echo \"# Workspaces\" \u003e README.md\n    echo \"\" \u003e\u003e README.md\n    echo '``` bash' \u003e\u003e README.md\n    COLUMNS=80 ./workspaces.py --help \u003e\u003e README.md\n    echo '```' \u003e\u003e README.md\n```\n",
      "summary": "setting env var to a number greater than 0 will make the terminal resize to that number of columns.",
      "date_published": "2025-11-26T13:24:38Z",
      "date_modified": "2025-11-26T13:24:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "cli",
        "python",
        "terminal"
      ]
    },
    {
      "id": "https://waylonwalker.com/grafana-alloy-scenarios/",
      "url": "https://waylonwalker.com/grafana-alloy-scenarios/",
      "title": "⭐ grafana alloy-scenarios",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/grafana/alloy-scenarios\" 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\"\u003ealloy-scenarios\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/grafana\" 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\"\u003egrafana\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eA collection of working Alloy scenarios\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [alloy-scenarios](https://github.com/grafana/alloy-scenarios), an amazing project by [grafana](https://github.com/grafana). It's worth exploring!\n\nA collection of working Alloy scenarios\n",
      "summary": "I'm really excited about alloy-scenarios, an amazing project by grafana. It's worth exploring!",
      "date_published": "2025-11-24T02:04:24Z",
      "date_modified": "2025-11-24T02:04:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/tea-login-flag/",
      "url": "https://waylonwalker.com/tea-login-flag/",
      "title": "tea login flag",
      "content_html": "\u003cp\u003eThe tea command for gitea (used by forgejo) has a flag for login.  With gitea\nyou can have multiple accounts logged in.  When you try to run a command such\nas \u003ccode\u003erepo create\u003c/code\u003e it will prompt you which login to use, but I learned that you\ncan bake it in to all of them with \u003ccode\u003e--login \u0026lt;login-name\u0026gt;\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ tea repo create --name deleteme --description \u003cspan class=\"s1\"\u003e\u0026#39;for example\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┃ NOTE: no gitea login detected, whether falling back to login \u003cspan class=\"s1\"\u003e\u0026#39;git.waylonwalker.com\u0026#39;\u003c/span\u003e?\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/11dc820d-1680-414c-9624-cd970b057a74.webp\" class=\"glightbox-link\" aria-label=\"image showing message NOTE: no gitea login detected, whether falling back to login ‘git.waylonwalker.com’?\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/11dc820d-1680-414c-9624-cd970b057a74.webp\" alt=\"image showing message NOTE: no gitea login detected, whether falling back to login ‘git.waylonwalker.com’?\"/ data-glightbox=\"description: image showing message NOTE: no gitea login detected, whether falling back to login ‘git.waylonwalker.com’?\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003etea repo create --name deleteme --description \u003cspan class=\"s1\"\u003e\u0026#39;for example\u0026#39;\u003c/span\u003e --login git.wayl.one\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nThe tea command for gitea (used by forgejo) has a flag for login.  With gitea\nyou can have multiple accounts logged in.  When you try to run a command such\nas `repo create` it will prompt you which login to use, but I learned that you\ncan bake it in to all of them with `--login \u003clogin-name\u003e`\n\n``` bash\n❯ tea repo create --name deleteme --description 'for example'\n┃ NOTE: no gitea login detected, whether falling back to login 'git.waylonwalker.com'?\n```\n\n![image showing message NOTE: no gitea login detected, whether falling back to login 'git.waylonwalker.com'?](https://dropper.waylonwalker.com/file/11dc820d-1680-414c-9624-cd970b057a74.webp)\n\n``` bash\ntea repo create --name deleteme --description 'for example' --login git.wayl.one\n```\n",
      "summary": "The tea command for gitea (used by forgejo) has a flag for login. With gitea you can have multiple accounts logged in. When you try to run a command such as...",
      "date_published": "2025-11-23T21:09:36Z",
      "date_modified": "2025-11-23T21:09:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "forgejo",
        "git",
        "gitea"
      ]
    },
    {
      "id": "https://waylonwalker.com/waylonwalker-wyattbubbylee-com/",
      "url": "https://waylonwalker.com/waylonwalker-wyattbubbylee-com/",
      "title": "⭐ WaylonWalker wyattbubbylee.com",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/WaylonWalker/wyattbubbylee.com\" 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\"\u003ewyattbubbylee.com\u003c/a\u003e by \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/p\u003e\n\u003cp\u003eNo description available.\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [wyattbubbylee.com](https://github.com/WaylonWalker/wyattbubbylee.com) by [WaylonWalker](https://github.com/WaylonWalker).\n\nNo description available.\n",
      "summary": "Looking for inspiration? wyattbubbylee.com by WaylonWalker.",
      "date_published": "2025-11-23T17:08:03Z",
      "date_modified": "2025-11-23T17:08:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/waylonwalker-qmk_firmware/",
      "url": "https://waylonwalker.com/waylonwalker-qmk_firmware/",
      "title": "⭐ WaylonWalker qmk_firmware",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/WaylonWalker/qmk_firmware\" 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\"\u003eqmk_firmware\u003c/a\u003e, created by \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/p\u003e\n\u003cp\u003eOpen-source keyboard firmware for Atmel AVR and Arm USB families\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [qmk_firmware](https://github.com/WaylonWalker/qmk_firmware), created by [WaylonWalker](https://github.com/WaylonWalker).\n\nOpen-source keyboard firmware for Atmel AVR and Arm USB families\n",
      "summary": "If you're into interesting projects, don't miss out on qmk_firmware, created by WaylonWalker.",
      "date_published": "2025-11-23T17:08:01Z",
      "date_modified": "2025-11-23T17:08:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-11-21-notes/",
      "url": "https://waylonwalker.com/2025-11-21-notes/",
      "title": "2025-11-21 Notes",
      "content_html": "\u003cp\u003eLearned about nginx_auth today.  Feels good to unlock a new skill that I did not quite understand before.  I don’t think I grasped that there is a backend server in this flow to handle every request.  I could not fathom how this was secure with nginx alone.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://git.wayl.one/waylon/learn-nginx-auth\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/git.wayl.one.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/git.wayl.one.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://git.wayl.one/waylon/learn-nginx-auth\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI’m excited to give this a try in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e with k3s ingress next.\u003c/p\u003e\n",
      "content_text": "Learned about nginx_auth today.  Feels good to unlock a new skill that I did not quite understand before.  I don't think I grasped that there is a backend server in this flow to handle every request.  I could not fathom how this was secure with nginx alone.\n\nhttps://git.wayl.one/waylon/learn-nginx-auth\n\nI'm excited to give this a try in my homelab with k3s ingress next.",
      "summary": "Learned about nginx_auth today. Feels good to unlock a new skill that I did not quite understand before. I don't think I grasped that there is a backend...",
      "date_published": "2025-11-21T14:25:59Z",
      "date_modified": "2025-11-21T14:25:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/octelium-octelium/",
      "url": "https://waylonwalker.com/octelium-octelium/",
      "title": "⭐ octelium octelium",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/octelium/octelium\" 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\"\u003eoctelium\u003c/a\u003e by \u003ca href=\"https://github.com/octelium\" 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\"\u003eoctelium\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eA next-gen FOSS \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself-hosted\u003c/a\u003e unified zero trust secure access platform that can operate as a remote access VPN, a ZTNA platform, API/AI/MCP gateway, a PaaS, an ngrok-alternative and a \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e infrastructure.\u003c/p\u003e\n",
      "content_text": "\nCheck out [octelium](https://github.com/octelium/octelium) by [octelium](https://github.com/octelium). It's a well-crafted project with great potential.\n\nA next-gen FOSS self-hosted unified zero trust secure access platform that can operate as a remote access VPN, a ZTNA platform, API/AI/MCP gateway, a PaaS, an ngrok-alternative and a homelab infrastructure.\n",
      "summary": "Check out octelium by octelium. It's a well-crafted project with great potential.",
      "date_published": "2025-11-20T01:02:04Z",
      "date_modified": "2025-11-20T01:02:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-11-19-notes/",
      "url": "https://waylonwalker.com/2025-11-19-notes/",
      "title": "2025-11-19 Notes",
      "content_html": "\u003cp\u003eMaking progress on dropper this week.\u003c/p\u003e\n\u003cp\u003eIn prod.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eresize for image and video\u003c/li\u003e\n\u003cli\u003eFile feed with paging\u003c/li\u003e\n\u003cli\u003eNew plain filesystem backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn dev\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRobust video conversion that seems to work on all my test videos\u003c/li\u003e\n\u003cli\u003eDuplicate file detection\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThinking about kedro pipelines from my phone in a parking lot here. I’m thinking about big picture what’s next for my pipelines.  I want an effective Dr plan. I want to create telemetry endpoints for catalog.  This will enable the Dr plan to identify  critical data that is not created by a pipeline and communication points to other teams.\u003c/p\u003e\n",
      "content_text": "Making progress on dropper this week.\n\nIn prod.\n\n* resize for image and video\n* File feed with paging\n* New plain filesystem backend\n\nIn dev\n\n* Robust video conversion that seems to work on all my test videos\n* Duplicate file detection\n\nThinking about kedro pipelines from my phone in a parking lot here. I'm thinking about big picture what's next for my pipelines.  I want an effective Dr plan. I want to create telemetry endpoints for catalog.  This will enable the Dr plan to identify  critical data that is not created by a pipeline and communication points to other teams.",
      "summary": "Making progress on dropper this week.",
      "date_published": "2025-11-19T18:55:14Z",
      "date_modified": "2025-11-19T18:55:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/another-big-cloud-outage-nov-2025/",
      "url": "https://waylonwalker.com/another-big-cloud-outage-nov-2025/",
      "title": "Another Big Cloud Outage Nov 2025",
      "content_html": "\u003cp\u003eToday I woke up to finding out that cloudflare hade a widespread outage.  My [[Reader]] uses tailwind cdn for styles and it was down. Otherwise it was not so impactful to me and felt kike they were quick to have it up.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI’m not really researching here, just jotting thoughts down from a parking lot waiting for pickup.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIt feels like we are seeing a lot of these lately.  They feel much more frequent.  It feels like a whole industry was sold on 9’s and reliability of big cloud that we just aren’t getting.\u003c/p\u003e\n\u003cp\u003eThere’s a huge push to go back to self hosting, racking and stacking.  I think this is great.  I love it.  I’m a big proponent for ownership and self hosting.  It’s not the right move for everything and everyone, and is certainly not something to make a knee jerk reaction about in the moment of frustration.\u003c/p\u003e\n\u003cp\u003eThere’s a lot of things that are just impossible to do yourself, cdn caching, edge compute, ddos protection.\u003c/p\u003e\n\u003cp\u003eThese companies are not magic they are vulnerable to changes just like you and I.  It really feels like more and more of these are due to misconfigurations, and small bugs introduced.  As we see big tech downsize and lean more on ai that likes to do big code changes I dont see it getting better soon.  Theres a lot of things we can all armchair quarterback about here, better testing, review, canary deployment, staged rollouts, rigorous review.  All great things.  I can hear Uncle Bob talking about rigor, giving a shit, and following principles.\u003c/p\u003e\n\u003cp\u003eWe are at odds of reliability and speed.  This critical infrastructure runs so many important things in our lives it feels like it deserves a professional engineer signoff on changes.  Documentation of changes and testing done between changes.  This would all but hault forward progress, taking us back to the level of physical components and manufacturing.\u003c/p\u003e\n\u003cp\u003eHow do you decide what needs this rigor and how to regulate it when companies are incentized by number go up.\u003c/p\u003e\n\u003cp\u003eThe answer right now is that we can’t and if you are managing critical infrastructure you need to take these outages into account in your disaster recovery plan and understand what you are willing to allow go down on failure.\u003c/p\u003e\n",
      "content_text": "\nToday I woke up to finding out that cloudflare hade a widespread outage.  My [[Reader]] uses tailwind cdn for styles and it was down. Otherwise it was not so impactful to me and felt kike they were quick to have it up.\n\n\u003e I'm not really researching here, just jotting thoughts down from a parking lot waiting for pickup.\n\nIt feels like we are seeing a lot of these lately.  They feel much more frequent.  It feels like a whole industry was sold on 9's and reliability of big cloud that we just aren't getting.  \n\nThere's a huge push to go back to self hosting, racking and stacking.  I think this is great.  I love it.  I'm a big proponent for ownership and self hosting.  It's not the right move for everything and everyone, and is certainly not something to make a knee jerk reaction about in the moment of frustration.\n\nThere's a lot of things that are just impossible to do yourself, cdn caching, edge compute, ddos protection.\n\nThese companies are not magic they are vulnerable to changes just like you and I.  It really feels like more and more of these are due to misconfigurations, and small bugs introduced.  As we see big tech downsize and lean more on ai that likes to do big code changes I dont see it getting better soon.  Theres a lot of things we can all armchair quarterback about here, better testing, review, canary deployment, staged rollouts, rigorous review.  All great things.  I can hear Uncle Bob talking about rigor, giving a shit, and following principles.  \n\nWe are at odds of reliability and speed.  This critical infrastructure runs so many important things in our lives it feels like it deserves a professional engineer signoff on changes.  Documentation of changes and testing done between changes.  This would all but hault forward progress, taking us back to the level of physical components and manufacturing.\n\nHow do you decide what needs this rigor and how to regulate it when companies are incentized by number go up.\n\nThe answer right now is that we can't and if you are managing critical infrastructure you need to take these outages into account in your disaster recovery plan and understand what you are willing to allow go down on failure.\n",
      "summary": "Today I woke up to finding out that cloudflare hade a widespread outage. My Reader uses tailwind cdn for styles and it was down. Otherwise it was not so...",
      "date_published": "2025-11-18T18:39:00Z",
      "date_modified": "2025-11-18T18:39:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cloud"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-870/",
      "url": "https://waylonwalker.com/thought-870/",
      "title": "💭 Microsoft keeps losing - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"AyuMdNoL1Vs\" title=\"Microsoft keeps losing\" playlabel=\"Play: Microsoft keeps losing\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e👏👏👏preach it prime!  M$ continues to prove that they are not making products for you something else is affoot and shit you don’t want is shoved down your throat and forced on you.\u003c/p\u003e\n\u003cp\u003ePrime points out that the agentic is prompt injected itself😂.  Rather than making a better os experience it’s assuming you are stupid and need everything done for you.  But what I don’t get here in the text scaling example.  Why the F does it not just fix it for me.  When I ask the machine to make text bigger it puts a flashy circle where to click.  This is a one time setup for someone who gives no fucks to remember how to do it.  Why is the machine doing this weird hand holding watching us do it’s work rather than just doing it? I like the pattern when you change display setting it gives you a counter that reverts everything if for some reason shit is so bad you can’t even see it.  Do that, not this help me click bs.\u003c/p\u003e\n\u003cp\u003eNow in parallel we have steam making Linux desktop better and better.  Allowing you to just access the hardware you own to do what you want to do with it.  Providing a fantastic hands off out of the box experience for the price of the hardware.  No ongoing fees, no upgrade cycle, soft lock, aribraray cutoff date, tpm bs requirements.  Good stuff as it was supposed to be created.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"AyuMdNoL1Vs\" title=\"Microsoft keeps losing\" playlabel=\"Play: Microsoft keeps losing\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n👏👏👏preach it prime!  M$ continues to prove that they are not making products for you something else is affoot and shit you don't want is shoved down your throat and forced on you.\n\nPrime points out that the agentic is prompt injected itself😂.  Rather than making a better os experience it's assuming you are stupid and need everything done for you.  But what I don't get here in the text scaling example.  Why the F does it not just fix it for me.  When I ask the machine to make text bigger it puts a flashy circle where to click.  This is a one time setup for someone who gives no fucks to remember how to do it.  Why is the machine doing this weird hand holding watching us do it's work rather than just doing it? I like the pattern when you change display setting it gives you a counter that reverts everything if for some reason shit is so bad you can't even see it.  Do that, not this help me click bs.\n\nNow in parallel we have steam making Linux desktop better and better.  Allowing you to just access the hardware you own to do what you want to do with it.  Providing a fantastic hands off out of the box experience for the price of the hardware.  No ongoing fees, no upgrade cycle, soft lock, aribraray cutoff date, tpm bs requirements.  Good stuff as it was supposed to be created.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/AyuMdNoL1Vs?si=QQ3BoV33nXR_TPnC",
      "date_published": "2025-11-15T17:51:23Z",
      "date_modified": "2025-11-15T17:51:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-869/",
      "url": "https://waylonwalker.com/thought-869/",
      "title": "💭 PETaflop cluster - Justin Garrison",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justingarrison.com/blog/petaflop-cluster/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://justingarrison.com/img/petaflop-banner.jpg\" alt=\"PETaflop cluster — AI is a pain in the back.\" loading=\"lazy\"/ data-glightbox=\"description: PETaflop cluster — AI is a pain in the back.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePETaflop cluster\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAI is a pain in the back.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003e Justin Garrison · justingarrison.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eJustin makes the coolest kubernetes clusters wishing I could see it in the flesh at Kubecon.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justingarrison.com/blog/petaflop-cluster/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://justingarrison.com/img/petaflop-banner.jpg\" alt=\"PETaflop cluster — AI is a pain in the back.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePETaflop cluster\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAI is a pain in the back.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003e Justin Garrison \u0026middot; justingarrison.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nJustin makes the coolest kubernetes clusters wishing I could see it in the flesh at Kubecon.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://justingarrison.com/blog/petaflop-cluster/",
      "date_published": "2025-11-12T17:44:41Z",
      "date_modified": "2025-11-12T17:44:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-868/",
      "url": "https://waylonwalker.com/thought-868/",
      "title": "💭 ChatGPT made me delusional",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"VRjgNgJms3Q\" title=\"ChatGPT made me delusional\" playlabel=\"Play: ChatGPT made me delusional\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolutely banger of a video, what a wild idea to send gippity a bit off course and just see how far off the rails it will go.  Dude did a banger of an edit on it.  I’ll admit that I listened to the whole thing, but did not watch much, saving here as I might go back when I have time to really watch it.  It was really weird how easy it was for chat to say something that could be true, but nearly no chance of it actually happening over and over and just keep it going down this dark spiral of conspiracies.  It was ready to electrocute him and separate him from anyone who had a chance of being a non believer.  At any moment was ready to say that those closest to him might be his problem.  gipity is not your friend, or your therapist.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"VRjgNgJms3Q\" title=\"ChatGPT made me delusional\" playlabel=\"Play: ChatGPT made me delusional\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAbsolutely banger of a video, what a wild idea to send gippity a bit off course and just see how far off the rails it will go.  Dude did a banger of an edit on it.  I'll admit that I listened to the whole thing, but did not watch much, saving here as I might go back when I have time to really watch it.  It was really weird how easy it was for chat to say something that could be true, but nearly no chance of it actually happening over and over and just keep it going down this dark spiral of conspiracies.  It was ready to electrocute him and separate him from anyone who had a chance of being a non believer.  At any moment was ready to say that those closest to him might be his problem.  gipity is not your friend, or your therapist.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=VRjgNgJms3Q",
      "date_published": "2025-11-12T02:35:21Z",
      "date_modified": "2025-11-12T02:35:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/side-effect-of-just-stars/",
      "url": "https://waylonwalker.com/side-effect-of-just-stars/",
      "title": "side effect of just stars",
      "content_html": "\u003cp\u003eI found an interesting side effect of manually running my script to generate [[\nstars ]] posts is that you get notified when one gets renamed.  Today I noticed\nthat Ned Batchelder created a coveragepy org.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/cf6dd0cc-5a74-40bf-8512-f62471ea1e56.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-11-12T03-33-12-967Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/cf6dd0cc-5a74-40bf-8512-f62471ea1e56.png\" alt=\"screenshot-2025-11-12T03-33-12-967Z.png\"/ data-glightbox=\"description: screenshot-2025-11-12T03-33-12-967Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI found an interesting side effect of manually running my script to generate [[\nstars ]] posts is that you get notified when one gets renamed.  Today I noticed\nthat Ned Batchelder created a coveragepy org.\n\n![screenshot-2025-11-12T03-33-12-967Z.png](https://dropper.waylonwalker.com/api/file/cf6dd0cc-5a74-40bf-8512-f62471ea1e56.png)\n",
      "summary": "I found an interesting side effect of manually running my script to generate stars posts is that you get notified when one gets renamed. Today I noticed that...",
      "date_published": "2025-11-11T21:33:33Z",
      "date_modified": "2025-11-11T21:33:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/pydantic-settings-alias-choices/",
      "url": "https://waylonwalker.com/pydantic-settings-alias-choices/",
      "title": "pydantic settings alias choices",
      "content_html": "\u003cp\u003eToday I learned how to use AliasChoices with pydantic settings to setup common\naliases for the same field.  I’m bad about remembering these things, and hate\nlooking up the docs.  I like things to be intuitive and just do the thing I\nwant it to do.  Especially when they get configured through something like yaml\nand do not have a direct lsp look up right from my editor.  I figured out how\nto support what might be common aliases for a storage directory.  These can be\nset up as environment variables and used by config.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epydantic\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eField\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epydantic\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eAliasChoices\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epydantic_settings\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eBaseSettings\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eclass\u003c/span\u003e \u003cspan class=\"nc\"\u003eSettings\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBaseSettings\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003estorage_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e \u003cspan class=\"o\"\u003e|\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eField\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003edefault\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003evalidation_alias\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eAliasChoices\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;STORAGE_DIR\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;STORAGE_DIRECTORY\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;STORAGE_PATH\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;STORAGE_PATHNAME\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;DROPPER_STORAGE_DIR\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;DROPPER_STORAGE_DIRECTORY\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;DROPPER_STORAGE_PATH\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;DROPPER_STORAGE_PATHNAME\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003edescription\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Directory for stored files\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I learned how to use AliasChoices with pydantic settings to setup common\naliases for the same field.  I'm bad about remembering these things, and hate\nlooking up the docs.  I like things to be intuitive and just do the thing I\nwant it to do.  Especially when they get configured through something like yaml\nand do not have a direct lsp look up right from my editor.  I figured out how\nto support what might be common aliases for a storage directory.  These can be\nset up as environment variables and used by config.\n\n``` python\nfrom pathlib import Path\n\nfrom pydantic import Field\nfrom pydantic import AliasChoices\nfrom pydantic_settings import BaseSettings\n\nclass Settings(BaseSettings):\n    storage_dir: Path | None = Field(\n        default=None,\n        validation_alias=AliasChoices(\n            \"STORAGE_DIR\", \"STORAGE_DIRECTORY\", \"STORAGE_PATH\", \"STORAGE_PATHNAME\",\n            \"DROPPER_STORAGE_DIR\", \"DROPPER_STORAGE_DIRECTORY\", \"DROPPER_STORAGE_PATH\", \"DROPPER_STORAGE_PATHNAME\",\n        ),\n        description=\"Directory for stored files\",\n    )\n```\n",
      "summary": "Today I learned how to use AliasChoices with pydantic settings to setup common aliases for the same field. I'm bad about remembering these things, and hate...",
      "date_published": "2025-11-11T21:23:58Z",
      "date_modified": "2025-11-11T21:23:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/3d-printed-corner-clamp/",
      "url": "https://waylonwalker.com/3d-printed-corner-clamp/",
      "title": "3d-Printed Corner Clamp",
      "content_html": "\u003cp\u003eGetting ready to batch out 18 apple boxes for the local theater.  Need to step\nup my woodworking tool game here quick on a low budget.  Whipped this up up and\nbuilt the prototype box , went really well. We have 4 in the arsenal now, might\ndo 4 more if we need more assembly capacity.  Pretty proud of the first 3d\nprinted thread project here.  The design for good 3d prints can be quite\ndifferent with its anisotropic strength and hollow sections being nearly\nweightless when compared to traditional manufacturing methods.  Its so fun to\nbe able to do it for almost no cost right in my home office.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2701fb29-5a35-4249-a66d-8a84a774fb0c.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20251112_030154891-cropped.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2701fb29-5a35-4249-a66d-8a84a774fb0c.jpg\" alt=\"PXL_20251112_030154891-cropped.jpg\"/ data-glightbox=\"description: PXL_20251112_030154891-cropped.jpg\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003e3d-printed corner clamp printed in black pla.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png\" class=\"glightbox-link\" aria-label=\"Corner Clamp V1 isometric\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png\" alt=\"Corner Clamp V1 isometric\"/ data-glightbox=\"description: Corner Clamp V1 isometric\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eIsometric view of my corner clamp v1 that supports up to 3/4\u0026#34; sheets and includes slots for dowell points on 3/4\u0026#34; and 1/2\u0026#34; material.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nGetting ready to batch out 18 apple boxes for the local theater.  Need to step\nup my woodworking tool game here quick on a low budget.  Whipped this up up and\nbuilt the prototype box , went really well. We have 4 in the arsenal now, might\ndo 4 more if we need more assembly capacity.  Pretty proud of the first 3d\nprinted thread project here.  The design for good 3d prints can be quite\ndifferent with its anisotropic strength and hollow sections being nearly\nweightless when compared to traditional manufacturing methods.  Its so fun to\nbe able to do it for almost no cost right in my home office.\n\n![PXL_20251112_030154891-cropped.jpg](https://dropper.waylonwalker.com/api/file/2701fb29-5a35-4249-a66d-8a84a774fb0c.jpg)\n\n\u003e 3d-printed corner clamp printed in black pla.\n\n![Corner Clamp V1 isometric](https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png)\n\n\u003e Isometric view of my corner clamp v1 that supports up to 3/4\" sheets and includes slots for dowell points on 3/4\" and 1/2\" material.\n\n",
      "summary": "Getting ready to batch out 18 apple boxes for the local theater. Need to step up my woodworking tool game here quick on a low budget. Whipped this up up and...",
      "date_published": "2025-11-11T21:13:07Z",
      "date_modified": "2025-11-11T21:13:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-867/",
      "url": "https://waylonwalker.com/thought-867/",
      "title": "💭 Post | LinkedIn",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.linkedin.com/posts/anton-martyniuk_mark-zuckerberg-scaled-facebook-in-2005-activity-7393550498584371201-iqDA/?utm_source=share\u0026amp;utm_medium=member_desktop\u0026amp;rcm=ACoAACM7I2cBosNBb12iAVlY0IZbLYYHgFOyIg4\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://media.licdn.com/dms/image/v2/D4E22AQFEJ1tbZxs6oQ/feedshare-image-high-res/B4EZpsq0GuKcAo-/0/1762759756836?e=2147483647\u0026amp;v=beta\u0026amp;t=gzUYR-OfjpPk-K4yYzhHY-DHTG6rSF5PdijOyB0twOE\" alt=\"Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\n\u0026lt;p\u0026gt;No fancy orchestration.\nNo distributed event streams.\nNo cloud-native… | Anton Martyniuk | 270 comments — Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;No fancy orchestration.\nNo distributed event streams.\nNo cloud-native anything.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;Modern devs love to over-engineer.\nWe build as if our projects will scale to 1 million users tomorrow.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;But here\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\n\u0026lt;p\u0026gt;No fancy orchestration.\nNo distributed event streams.\nNo cloud-native… | Anton Martyniuk | 270 comments — Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;No fancy orchestration.\nNo distributed event streams.\nNo cloud-native anything.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;Modern devs love to over-engineer.\nWe build as if our projects will scale to 1 million users tomorrow.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;But here\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eMark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eNo fancy orchestration.\nNo distributed event streams.\nNo cloud-native… | Anton Martyniuk | 270 comments\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eMark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eNo fancy orchestration.\nNo distributed event streams.\nNo cloud-native anyth…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eLinkedIn · linkedin.com\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eLean on your skills and your goals. If your goals are to have fun, use whatever you want. If you are looking for a job, Lean on tech that bridges the gap between your resume and the job you want. If you want to build a good product use the tech you are best at. No one in their right mind would throw away 20 years of tech progression because Zuck built facebook ftping php to a server.\u003c/p\u003e\n\u003cp\u003eThe sentiment in this post is fine at best the picture feels triggering and oversimplies  way too much.  If you like kubernetes \u003ca href=\"/just-fucking-use-kubernetes/\" class=\"wikilink\" data-title=\"just fucking use kubernetes\" data-description=\"You want to run containers?\" data-date=\"2025-07-01\" data-preview=\"You want to run containers?\"\u003ejust fucking use kubernetes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis topic deserves a full on post, maybe later.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.linkedin.com/posts/anton-martyniuk_mark-zuckerberg-scaled-facebook-in-2005-activity-7393550498584371201-iqDA/?utm_source=share\u0026amp;utm_medium=member_desktop\u0026amp;rcm=ACoAACM7I2cBosNBb12iAVlY0IZbLYYHgFOyIg4\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://media.licdn.com/dms/image/v2/D4E22AQFEJ1tbZxs6oQ/feedshare-image-high-res/B4EZpsq0GuKcAo-/0/1762759756836?e=2147483647\u0026amp;v=beta\u0026amp;t=gzUYR-OfjpPk-K4yYzhHY-DHTG6rSF5PdijOyB0twOE\" alt=\"Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\n\nNo fancy orchestration.\nNo distributed event streams.\nNo cloud-native… | Anton Martyniuk | 270 comments — Mark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\n\nNo fancy orchestration.\nNo distributed event streams.\nNo cloud-native anything.\n\nModern devs love to over-engineer.\nWe build as if our projects will scale to 1 million users tomorrow.\n\nBut here\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\n\nNo fancy orchestration.\nNo distributed event streams.\nNo cloud-native… | Anton Martyniuk | 270 comments\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMark Zuckerberg scaled Facebook in 2005 - without Kubernetes, Serverless Functions, Redis, Managed Auth, Rust, or Kafka.\n\nNo fancy orchestration.\nNo distributed event streams.\nNo cloud-native anyth...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLinkedIn \u0026middot; linkedin.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nLean on your skills and your goals. If your goals are to have fun, use whatever you want. If you are looking for a job, Lean on tech that bridges the gap between your resume and the job you want. If you want to build a good product use the tech you are best at. No one in their right mind would throw away 20 years of tech progression because Zuck built facebook ftping php to a server.\n\nThe sentiment in this post is fine at best the picture feels triggering and oversimplies  way too much.  If you like kubernetes \u003ca href=\"/just-fucking-use-kubernetes/\" class=\"wikilink\" data-title=\"just fucking use kubernetes\" data-description=\"You want to run containers?\" data-date=\"2025-07-01\"\u003ejust fucking use kubernetes\u003c/a\u003e.\n\nThis topic deserves a full on post, maybe later.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.linkedin.com/posts/anton-martyniuk_source=share\u0026utm_desktop\u0026rcm=ACoAACM7I2cBosNBb12iAVlY0IZbLYYHgFOyIg4",
      "date_published": "2025-11-11T02:43:05Z",
      "date_modified": "2025-11-11T02:43:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/techbrophobic/",
      "url": "https://waylonwalker.com/techbrophobic/",
      "title": "Techbrophobic",
      "content_html": "\u003cp\u003eI just heard someone drop the this term and it kinda fits a lot of shit on the\ninternet right now.  Arguing that its OK to question AI, its OK to like it, its\nOK to question if it needs to be in every goddamn thing we do, question its\nmorality on training and the slop being pushed at us all the time.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI’m not Technophobic I’m Techbrophobic\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI heard this and it kinda hit with a lot of things that I’ve resonated with\nlately.  Tech bros of today have been compared to Steve Jobs in a lot of ways.\nWhether its style or the way he was so good at marketing, but this feels\ndifferent.  When Jobs launched the iPhone as this next great thing, He fucking\nmade the thing.\u003c/p\u003e\n\u003cp\u003eNo broken promises of being sold something with hopes that it\nwill do more tomorrow.\u003c/p\u003e\n\u003cp\u003eNo pushing around insane amounts of money with the hope\nto become profitable years down the line.\u003c/p\u003e\n\u003cp\u003eNo fear pushing that if you are not\ndoing X today your business will be dead in 6 months.\u003c/p\u003e\n\u003cp\u003eGiving us the promise that it was about to create an entire industry of careers\nthrough building software that brought us real value, real entertainment, Not\nthe promise of that.\u003c/p\u003e\n\u003cp\u003eThis tech made it easier to do the mundane, no longer carrying out dated maps\nin your glove box, everyone now has a flashlight, a calculator, a camera, a way\nto video call your mom.\u003c/p\u003e\n\u003cp\u003eI’m not a complete Luddite, I see value in being able to lean on AI for\ngenerating code, asking questions, helping change the tone of your messages.\u003c/p\u003e\n\u003cp\u003eThere are so many issues with AI currently even looking past the stolen works,\ncopyright, and power consumption.  The messaging does not pass the vibe check.\nHigh up folks are getting the impression that they can remove humans from the\nworkforce.  Deploy the same features with fewer headcount.  It’s doing our art,\nwriting our code, communicating with our colleagues.  It’s not doing protein\nfolding and cancer research.  No matter how many promises we get its not\ndriving our vehicles.\u003c/p\u003e\n\u003cp\u003eI do believe there is a world in which it makes us more efficient.  It fills in\nthe gaps of our knowledge.  It helps us learn.  It helps solve complex\nproblems.  It allows humans to flourish and create things they never could\nhave.\u003c/p\u003e\n",
      "content_text": "\nI just heard someone drop the this term and it kinda fits a lot of shit on the\ninternet right now.  Arguing that its OK to question AI, its OK to like it, its\nOK to question if it needs to be in every goddamn thing we do, question its\nmorality on training and the slop being pushed at us all the time.\n\n\u003e I'm not Technophobic I'm Techbrophobic\n\nI heard this and it kinda hit with a lot of things that I've resonated with\nlately.  Tech bros of today have been compared to Steve Jobs in a lot of ways.\nWhether its style or the way he was so good at marketing, but this feels\ndifferent.  When Jobs launched the iPhone as this next great thing, He fucking\nmade the thing.  \n\nNo broken promises of being sold something with hopes that it\nwill do more tomorrow.  \n\nNo pushing around insane amounts of money with the hope\nto become profitable years down the line.  \n\nNo fear pushing that if you are not\ndoing X today your business will be dead in 6 months.  \n\nGiving us the promise that it was about to create an entire industry of careers\nthrough building software that brought us real value, real entertainment, Not\nthe promise of that.\n\nThis tech made it easier to do the mundane, no longer carrying out dated maps\nin your glove box, everyone now has a flashlight, a calculator, a camera, a way\nto video call your mom.\n\nI'm not a complete Luddite, I see value in being able to lean on AI for\ngenerating code, asking questions, helping change the tone of your messages.\n\nThere are so many issues with AI currently even looking past the stolen works,\ncopyright, and power consumption.  The messaging does not pass the vibe check.\nHigh up folks are getting the impression that they can remove humans from the\nworkforce.  Deploy the same features with fewer headcount.  It's doing our art,\nwriting our code, communicating with our colleagues.  It's not doing protein\nfolding and cancer research.  No matter how many promises we get its not\ndriving our vehicles.\n\nI do believe there is a world in which it makes us more efficient.  It fills in\nthe gaps of our knowledge.  It helps us learn.  It helps solve complex\nproblems.  It allows humans to flourish and create things they never could\nhave.\n\n",
      "summary": "I just heard someone drop the this term and it kinda fits a lot of shit on the internet right now. Arguing that its OK to question AI, its OK to like it, its...",
      "date_published": "2025-11-09T20:13:33Z",
      "date_modified": "2025-11-09T20:13:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-866/",
      "url": "https://waylonwalker.com/thought-866/",
      "title": "💭 Ford Thinks We're Cooked, I agree- YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"TyCR8YpvqhE\" title=\"Ford Thinks We\u0026#39;re Cooked, I Agree\" playlabel=\"Play: Ford Thinks We\u0026#39;re Cooked, I Agree\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAre we cooked?  Are we?  Yes the consumers are cooked there are no more affordable cars with basic shit that you need to go point a to point b.  Ford make us cars we can afford and you won’t be cooked by this dumb shit.  If you can market it?\u003c/p\u003e\n\u003cp\u003eMost people don’t care what sticker price is and only the monthly payment.  This is why we are cooked.  We stopped caring that these things cost way too much.  I’m probably in a small minority that just want an affordable reliable vehicle and could care less about features past climate control.  I don’t use them.  My phone has maps and music I don’t need a screen in my vehicle for anything.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"TyCR8YpvqhE\" title=\"Ford Thinks We\u0026#39;re Cooked, I Agree\" playlabel=\"Play: Ford Thinks We\u0026#39;re Cooked, I Agree\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAre we cooked?  Are we?  Yes the consumers are cooked there are no more affordable cars with basic shit that you need to go point a to point b.  Ford make us cars we can afford and you won't be cooked by this dumb shit.  If you can market it?  \n\nMost people don't care what sticker price is and only the monthly payment.  This is why we are cooked.  We stopped caring that these things cost way too much.  I'm probably in a small minority that just want an affordable reliable vehicle and could care less about features past climate control.  I don't use them.  My phone has maps and music I don't need a screen in my vehicle for anything.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/TyCR8YpvqhE?si=VmV389UaBzGbjdO-",
      "date_published": "2025-11-06T16:35:18Z",
      "date_modified": "2025-11-06T16:35:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "automotive",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/mcat-anything/",
      "url": "https://waylonwalker.com/mcat-anything/",
      "title": "Mcat Anything",
      "content_html": "\u003cp\u003eI’ve long looked for a way to cat anything in the terminal.   I’m am terminally\nin the terminal.  I manage all of my projects, code, website, notes, files,\nservers, infrastructure, almost everything from the terminal.  I occasionally\nopen a file manager, mostly at home, only so that I can browse images.\u003c/p\u003e\n\u003cp\u003eCompounding my issue, I’m a tmux user. It works great for me, and I barely have\nto think about it at this point. The keybindings are second nature to me.  I\ncan go between server, terminal, nvim, and between projects instantly, no\nloader, no lag, no animation, it just works for everything that really matters\nto me for really getting things done.\u003c/p\u003e\n\u003ch2 id=\"mcat\"\u003eMcat \u003ca href=\"#mcat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003emcat\u003c/code\u003e is a new tool that seems like it can cat anything in the terminal, code,\nfiles, images, markdown, markdown with images, and even video, without leaving\ntmux!\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emcat static/8bitcc.png\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://r.jina.ai/https://waylonwalker.com/store/ \u003cspan class=\"p\"\u003e|\u003c/span\u003e mcat --theme dracula --md-image all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://r.jina.ai/https://waylonwalker.com/shots/ \u003cspan class=\"p\"\u003e|\u003c/span\u003e mcat --theme dracula\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emcat ~/git/dropper/data/01b21044-0bf8-4b06-9db1-a002c0519df6.mp4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emcat ~/git/dropper/data/0e659c05-1c12-4524-aa54-ef52ba680865.webm\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c!-- ![1fa2e162-deeb-4bb5-b1c5-961632abd452.mp4](https://dropper.waylonwalker.com/api/file/1fa2e162-deeb-4bb5-b1c5-961632abd452.mp4) --\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/663a3793-6426-4b91-a7df-835540d16910.webm\" class=\"glightbox-link\" aria-label=\"1fa2e162-deeb-4bb5-b1c5-961632abd452.webm\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/663a3793-6426-4b91-a7df-835540d16910.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/663a3793-6426-4b91-a7df-835540d16910.webm\" type=\"video/webm\"\u003e1fa2e162-deeb-4bb5-b1c5-961632abd452.webm\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"but-it-doesnt-always-work\"\u003eBut it doesn’t always work \u003ca href=\"#but-it-doesnt-always-work\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe keen eyed of you will notice the blank screen at the start of the demo\nabove, not sure what happened, but resizing the terminal fixed something.\nSometimes video comes up as an image, sometimes it core dumps, once even it\ncrashed my system…\u003c/p\u003e\n\u003cp\u003eThe hope is there, I’ll continue to use it occasionally, but right now it feels\nlike a novelty that is fun to look at when it works.  For now I’m going to\nstick to my kitty/tmux combo that works even though they seem to hate each\nother and I’m going to be happy just getting shit done.\u003c/p\u003e\n",
      "content_text": "\nI've long looked for a way to cat anything in the terminal.   I'm am terminally\nin the terminal.  I manage all of my projects, code, website, notes, files,\nservers, infrastructure, almost everything from the terminal.  I occasionally\nopen a file manager, mostly at home, only so that I can browse images.\n\nCompounding my issue, I'm a tmux user. It works great for me, and I barely have\nto think about it at this point. The keybindings are second nature to me.  I\ncan go between server, terminal, nvim, and between projects instantly, no\nloader, no lag, no animation, it just works for everything that really matters\nto me for really getting things done.\n\n## Mcat\n\n`mcat` is a new tool that seems like it can cat anything in the terminal, code,\nfiles, images, markdown, markdown with images, and even video, without leaving\ntmux!\n\n``` bash\nmcat static/8bitcc.png\ncurl https://r.jina.ai/https://waylonwalker.com/store/ | mcat --theme dracula --md-image all\ncurl https://r.jina.ai/https://waylonwalker.com/shots/ | mcat --theme dracula\nmcat ~/git/dropper/data/01b21044-0bf8-4b06-9db1-a002c0519df6.mp4\nmcat ~/git/dropper/data/0e659c05-1c12-4524-aa54-ef52ba680865.webm\n```\n\n\u003c!-- ![1fa2e162-deeb-4bb5-b1c5-961632abd452.mp4](https://dropper.waylonwalker.com/api/file/1fa2e162-deeb-4bb5-b1c5-961632abd452.mp4) --\u003e\n![1fa2e162-deeb-4bb5-b1c5-961632abd452.webm](https://dropper.waylonwalker.com/api/file/663a3793-6426-4b91-a7df-835540d16910.webm)\n\n## But it doesn't always work\n\nThe keen eyed of you will notice the blank screen at the start of the demo\nabove, not sure what happened, but resizing the terminal fixed something.\nSometimes video comes up as an image, sometimes it core dumps, once even it\ncrashed my system...\n\nThe hope is there, I'll continue to use it occasionally, but right now it feels\nlike a novelty that is fun to look at when it works.  For now I'm going to\nstick to my kitty/tmux combo that works even though they seem to hate each\nother and I'm going to be happy just getting shit done.\n",
      "summary": "I've long looked for a way to cat anything in the terminal. I'm am terminally in the terminal. I manage all of my projects, code, website, notes, files,...",
      "date_published": "2025-11-05T20:10:02Z",
      "date_modified": "2025-11-05T20:10:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/missing-thoughts-on-main/",
      "url": "https://waylonwalker.com/missing-thoughts-on-main/",
      "title": "Missing Thoughts",
      "content_html": "\u003cp\u003eNo one is perfect, this is why we have things like checkpoints or gates in the\nform of pull requests, linting, type checking, and tests.  What happens when\nyou work on small side projects by yourself that try to be content focused?\nWhat happens when you end up building a lot of the tech under that site and\nbuild it on the bleeding edge of all the tech you make? They are likely missing\nthese things and occasionally there are some periods of regression.  This is\none reason I really like the term digital garden to describe one’s small corner\nof the internet where they share their thoughts.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThere will be regressions\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"the-signs\"\u003eThe Signs \u003ca href=\"#the-signs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere were signs, signs I did not notice\u003c/p\u003e\n\u003cdiv class=\"admonition chat\"\u003e\n\u003cp class=\"admonition-title\"\u003eChat\u003c/p\u003e\n\u003cp\u003eis your rss feed broken?\u003c/p\u003e\n\u003cp\u003eI’m not seeing anything show up in my rss reader\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat-reply\"\u003e\n\u003cp class=\"admonition-title\"\u003eme\u003c/p\u003e\n\u003cp\u003eDo I not put thoughts in my rss feed, I swore I did.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat\"\u003e\n\u003cp class=\"admonition-title\"\u003eChat\u003c/p\u003e\n\u003cp\u003emy fault, Turns out I must have already clicked it in my reader.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition chat-reply\"\u003e\n\u003cp class=\"admonition-title\"\u003eme\u003c/p\u003e\n\u003cp\u003egreat, glat it’s working\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003e…But it wasn’t\u003c/p\u003e\n\u003cp\u003eLater this week comes the next sign that I also choose to ignore… Google\nsearch has unindexed a number of pages due to a soft 404.  I don’t look at all\nof the emails from search console, but I did happen to see this one, and\nthought “Huh, that’s odd” and went on with my day without another thought on the\nissue.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5601435b-2c87-4598-b01f-57e5eb737ebe.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-11-04T02-59-44-259Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5601435b-2c87-4598-b01f-57e5eb737ebe.png\" alt=\"screenshot-2025-11-04T02-59-44-259Z.png\"/ data-glightbox=\"description: screenshot-2025-11-04T02-59-44-259Z.png\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHuh, that’s odd\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"the-discovery\"\u003eThe Discovery \u003ca href=\"#the-discovery\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI didn’t realize I even had an issue until later that week when I went to my [[\narchive ]] myself and noticed the shape of it looks off.  When I opened up my\nfeed something felt off, it was only the big posts.  Thoughts show up as a\ndifferent kind of card\u003c/p\u003e\n\u003cp\u003eThen it hit me.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSomething just felt off\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThoughts are Gone!\u003c/p\u003e\n\u003ch2 id=\"the-fix\"\u003eThe Fix \u003ca href=\"#the-fix\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI popped open my config and immediately knew what happened.  I turned off some\nplugins locally for faster build iteration and that change found its way into\nproduction…. because I have nothing to check myself on other than me.  The\nplugin is now back and thoughts are flowing from thoughts.waylonwalker.com to\nwaylonwalker.com, no problem.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ git log -p\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommit adeb9812f7ecf4d9a68c6aa5e01e549e4dd91285 \u003cspan class=\"o\"\u003e(\u003c/span\u003eHEAD -\u0026gt; main, origin/main, origin/HEAD\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthor: Waylon S. Walker \u0026lt;waylon@waylonwalker.com\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDate:   Mon Nov \u003cspan class=\"m\"\u003e3\u003c/span\u003e 19:56:40 \u003cspan class=\"m\"\u003e2025\u003c/span\u003e -0600\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    thoughts were missing\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ediff --git a/markata.toml b/markata.toml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eindex 59539bab..a55a494d \u003cspan class=\"m\"\u003e100644\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--- a/markata.toml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+++ b/markata.toml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e@@ -31,7 +31,7 @@ \u003cspan class=\"nv\"\u003ehooks\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"s1\"\u003e\u0026#39;plugins.chartjs\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"s1\"\u003e\u0026#39;plugins.md_video\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"s1\"\u003e\u0026#39;plugins.post_model\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-    \u003cspan class=\"c1\"\u003e# \u0026#39;plugins.thoughts\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+    \u003cspan class=\"s1\"\u003e\u0026#39;plugins.thoughts\u0026#39;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"c1\"\u003e# \u0026#34;plugins.wikilink_hover\u0026#34;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"c1\"\u003e# \u0026#34;plugins.wa_wikilink_hover\u0026#34;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e     \u003cspan class=\"s2\"\u003e\u0026#34;plugins.tippy_wikilink_hover\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"owning-everything-has-a-cost\"\u003eOwning Everything has a cost \u003ca href=\"#owning-everything-has-a-cost\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou see here I am a one man show.  I own the content, the build, the infra that\ndoes the build.  I love it, but there is so much to do for one persons side\nproject passion project.  Did I bite off more than I can chew? Did I choose the\nwrong abstraction level for my needs?  Should I have better tests in place? Or\nis this just a digital garden that has ebs and flows, growing weeds and pruning\nthem every few months?\u003c/p\u003e\n",
      "content_text": "\nNo one is perfect, this is why we have things like checkpoints or gates in the\nform of pull requests, linting, type checking, and tests.  What happens when\nyou work on small side projects by yourself that try to be content focused?\nWhat happens when you end up building a lot of the tech under that site and\nbuild it on the bleeding edge of all the tech you make? They are likely missing\nthese things and occasionally there are some periods of regression.  This is\none reason I really like the term digital garden to describe one's small corner\nof the internet where they share their thoughts.\n\n\n\u003e There will be regressions\n\n## The Signs\n\nThere were signs, signs I did not notice\n\n!!! chat\n\n    is your rss feed broken?\n\n    I'm not seeing anything show up in my rss reader\n\n!!! chat-reply me\n\n    Do I not put thoughts in my rss feed, I swore I did.\n\n!!! chat\n\n    my fault, Turns out I must have already clicked it in my reader.\n\n!!! chat-reply me\n\n    great, glat it's working\n\n...But it wasn't\n\nLater this week comes the next sign that I also choose to ignore... Google\nsearch has unindexed a number of pages due to a soft 404.  I don't look at all\nof the emails from search console, but I did happen to see this one, and\nthought \"Huh, that's odd\" and went on with my day without another thought on the\nissue.\n\n![screenshot-2025-11-04T02-59-44-259Z.png](https://dropper.waylonwalker.com/api/file/5601435b-2c87-4598-b01f-57e5eb737ebe.png)\n\n\u003e Huh, that's odd\n\n## The Discovery\n\nI didn't realize I even had an issue until later that week when I went to my [[\narchive ]] myself and noticed the shape of it looks off.  When I opened up my\nfeed something felt off, it was only the big posts.  Thoughts show up as a\ndifferent kind of card\n\nThen it hit me.\n\n\u003e Something just felt off\n\nThoughts are Gone!\n\n## The Fix\n\nI popped open my config and immediately knew what happened.  I turned off some\nplugins locally for faster build iteration and that change found its way into\nproduction.... because I have nothing to check myself on other than me.  The\nplugin is now back and thoughts are flowing from thoughts.waylonwalker.com to\nwaylonwalker.com, no problem.\n\n``` bash\n❯ git log -p\ncommit adeb9812f7ecf4d9a68c6aa5e01e549e4dd91285 (HEAD -\u003e main, origin/main, origin/HEAD)\nAuthor: Waylon S. Walker \u003cwaylon@waylonwalker.com\u003e\nDate:   Mon Nov 3 19:56:40 2025 -0600\n\n    thoughts were missing\n\ndiff --git a/markata.toml b/markata.toml\nindex 59539bab..a55a494d 100644\n--- a/markata.toml\n+++ b/markata.toml\n@@ -31,7 +31,7 @@ hooks = [\n     'plugins.chartjs',\n     'plugins.md_video',\n     'plugins.post_model',\n-    # 'plugins.thoughts',\n+    'plugins.thoughts',\n     # \"plugins.wikilink_hover\",\n     # \"plugins.wa_wikilink_hover\",\n     \"plugins.tippy_wikilink_hover\",\n```\n\n## Owning Everything has a cost\n\nYou see here I am a one man show.  I own the content, the build, the infra that\ndoes the build.  I love it, but there is so much to do for one persons side\nproject passion project.  Did I bite off more than I can chew? Did I choose the\nwrong abstraction level for my needs?  Should I have better tests in place? Or\nis this just a digital garden that has ebs and flows, growing weeds and pruning\nthem every few months?\n",
      "summary": "No one is perfect, this is why we have things like checkpoints or gates in the form of pull requests, linting, type checking, and tests. What happens when...",
      "date_published": "2025-11-05T07:23:35Z",
      "date_modified": "2025-11-05T07:23:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/skardyy-mcat/",
      "url": "https://waylonwalker.com/skardyy-mcat/",
      "title": "⭐ Skardyy mcat",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/Skardyy/mcat\" 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\"\u003emcat\u003c/a\u003e by \u003ca href=\"https://github.com/Skardyy\" 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\"\u003eSkardyy\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eTerminal image, video, directory, and Markdown viewer\u003c/p\u003e\n",
      "content_text": "\n[mcat](https://github.com/Skardyy/mcat) by [Skardyy](https://github.com/Skardyy) is a game-changer in its space. Excited to see how it evolves.\n\nTerminal image, video, directory, and Markdown viewer\n",
      "summary": "mcat by Skardyy is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-11-04T23:36:51Z",
      "date_modified": "2025-11-04T23:36:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-11-04-notes/",
      "url": "https://waylonwalker.com/2025-11-04-notes/",
      "title": "2025-11-04 Notes",
      "content_html": "\u003cp\u003eToday I gave mcat a try and it’s so sick.  It can \u003ccode\u003ecat\u003c/code\u003e anything right in the\nterminal, pdf, image, even video.  It even works inside tmux unlike almost\nanything else that I’ve tried.\u003c/p\u003e\n",
      "content_text": "\nToday I gave mcat a try and it's so sick.  It can `cat` anything right in the\nterminal, pdf, image, even video.  It even works inside tmux unlike almost\nanything else that I've tried.\n",
      "summary": "Today I gave mcat a try and it's so sick. It can anything right in the terminal, pdf, image, even video. It even works inside tmux unlike almost anything...",
      "date_published": "2025-11-04T18:43:38Z",
      "date_modified": "2025-11-04T18:43:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-865/",
      "url": "https://waylonwalker.com/thought-865/",
      "title": "💭 I refuse to change the way I play… 😂🔥 #comedy #videogames #min...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"2TUER4JftGA\" title=\"I refuse to change the way I play… 😂🔥 #comedy #videogames \u0026lt;a href=\" tags=\"\" minecraft=\"\" \"=\"\" class=\"hashtag-tag\" data-tag=\"minecraft\" data-count=\"28\" data-reading-time=\"32\" data-reading-time-text=\"32 minutes\"\u003e#minecraft\u0026#34; playlabel=\u0026#34;Play: I refuse to change the way I play… 😂🔥 #comedy #videogames \u003ca href=\"/tags/minecraft/\" class=\"hashtag-tag\" data-tag=\"minecraft\" data-count=\"28\" data-reading-time=\"32\" data-reading-time-text=\"32 minutes\"\u003e#minecraft\u003c/a\u003e\u0026#34;\u0026gt;\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eMicrosoft has been addding features to Minecraft for over 10 years now.  Idk if there was momentum from the mojang theme, but we’ve barely paid attention to any updates in the last five years.  The ocean update was huge, caves and cliffs were huge then it trailed off to we play each release on release day, use commands to try out new features, then never touch them again either to play minecraft as we always have or to play a modded pack with crazy new features that really make an impact on gameplay.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"2TUER4JftGA\" title=\"I refuse to change the way I play… 😂🔥 #comedy #videogames \u003ca href=\"/tags/minecraft/\" class=\"hashtag-tag\" data-tag=\"minecraft\" data-count=28 data-reading-time=32 data-reading-time-text=\"32 minutes\"\u003e#minecraft\u003c/a\u003e\" playlabel=\"Play: I refuse to change the way I play… 😂🔥 #comedy #videogames \u003ca href=\"/tags/minecraft/\" class=\"hashtag-tag\" data-tag=\"minecraft\" data-count=28 data-reading-time=32 data-reading-time-text=\"32 minutes\"\u003e#minecraft\u003c/a\u003e\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nMicrosoft has been addding features to Minecraft for over 10 years now.  Idk if there was momentum from the mojang theme, but we've barely paid attention to any updates in the last five years.  The ocean update was huge, caves and cliffs were huge then it trailed off to we play each release on release day, use commands to try out new features, then never touch them again either to play minecraft as we always have or to play a modded pack with crazy new features that really make an impact on gameplay.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=2TUER4JftGA",
      "date_published": "2025-11-02T16:12:02Z",
      "date_modified": "2025-11-02T16:12:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "minecraft",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-864/",
      "url": "https://waylonwalker.com/thought-864/",
      "title": "💭 Rewriting SQLite from prison with Preston Thorpe - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"AEPf9zUI_fQ\" title=\"Rewriting SQLite from prison with Preston Thorpe\" playlabel=\"Play: Rewriting SQLite from prison with Preston Thorpe\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolutely incredible what Preston is doing with his time.  What a life changing experience this must be for him.  Good job to Turso for making this happen.  We are going to end up with very feature rich file based databases out of this that the whole world will benefit from.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"AEPf9zUI_fQ\" title=\"Rewriting SQLite from prison with Preston Thorpe\" playlabel=\"Play: Rewriting SQLite from prison with Preston Thorpe\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAbsolutely incredible what Preston is doing with his time.  What a life changing experience this must be for him.  Good job to Turso for making this happen.  We are going to end up with very feature rich file based databases out of this that the whole world will benefit from.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=AEPf9zUI_fQ",
      "date_published": "2025-11-02T15:46:38Z",
      "date_modified": "2025-11-02T15:46:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "database",
        "oss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-863/",
      "url": "https://waylonwalker.com/thought-863/",
      "title": "💭 STOP. Using AI Right now - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"qw4fDU18RcU\" title=\"STOP. Using AI Right now\" playlabel=\"Play: STOP. Using AI Right now\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAbsolutely love this selfhosted arc of pewdiepie that is going on right now.  It’s crazy to witness now fast he is picking up linux / self hosting, and sounds like soon will be programming.  In this one he built a $20k AI beast that crushes gippity with power, speed, proximity, and security.  No one to take your data, no latency to the data center, no one else bogging down your prompts, just raw speed.  It looks absolutely wild.  He implemented RAG and gave it a bunch of data about himself and its able to spit out his wife’s name and phone number in under a second.  It writes code at blazing pace.  This may be the future that we get over the next few years as things shift towards AI there will be more affordable options, and a larger second hand market for building out these highly capable machines.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"qw4fDU18RcU\" title=\"STOP. Using AI Right now\" playlabel=\"Play: STOP. Using AI Right now\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAbsolutely love this selfhosted arc of pewdiepie that is going on right now.  It's crazy to witness now fast he is picking up linux / self hosting, and sounds like soon will be programming.  In this one he built a $20k AI beast that crushes gippity with power, speed, proximity, and security.  No one to take your data, no latency to the data center, no one else bogging down your prompts, just raw speed.  It looks absolutely wild.  He implemented RAG and gave it a bunch of data about himself and its able to spit out his wife's name and phone number in under a second.  It writes code at blazing pace.  This may be the future that we get over the next few years as things shift towards AI there will be more affordable options, and a larger second hand market for building out these highly capable machines.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=qw4fDU18RcU",
      "date_published": "2025-11-02T15:42:29Z",
      "date_modified": "2025-11-02T15:42:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-862/",
      "url": "https://waylonwalker.com/thought-862/",
      "title": "💭 The Glorious Pipe Operator (Elixir for PHP Devs) | Jesse Leite",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jesseleite.com/2025/the-glorious-pipe-operator\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://jesseleite.com/img/asset/YXNzZXRzL3Nlby9vZy1pbWFnZS1iYWctZW5kLnBuZw/og-image-bag-end.png?p=seo_pro_og\u0026amp;s=345669cb43e131dd75d795dca9edb0c7\" alt=\"The Glorious Pipe Operator (Elixir for PHP Devs) — Let\u0026#39;s talk about how how the functional pipe operator helps to simplify and improve code readability and composability, and how it contrasts with the fluent interface design pattern commonly used in OOP.\" loading=\"lazy\"/ data-glightbox=\"description: The Glorious Pipe Operator (Elixir for PHP Devs) — Let\u0026#39;s talk about how how the functional pipe operator helps to simplify and improve code readability and composability, and how it contrasts with the fluent interface design pattern commonly used in OOP.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe Glorious Pipe Operator (Elixir for PHP Devs)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLet\u0026#39;s talk about how how the functional pipe operator helps to simplify and improve code readability and composability, and how it contrasts with the fluent interface design pattern commonly used i...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eJesse Leite · jesseleite.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m so glad that python supports method chaining out of the box, very similar to the pipe operator that Jesse mentions here.  It makes everything much more readable to follow the flow rather than needing to parse nested funcion calls \u003ccode\u003eout(inside())\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jesseleite.com/2025/the-glorious-pipe-operator\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jesseleite.com/img/asset/YXNzZXRzL3Nlby9vZy1pbWFnZS1iYWctZW5kLnBuZw/og-image-bag-end.png?p=seo_pro_og\u0026amp;s=345669cb43e131dd75d795dca9edb0c7\" alt=\"The Glorious Pipe Operator (Elixir for PHP Devs) — Let\u0026#39;s talk about how how the functional pipe operator helps to simplify and improve code readability and composability, and how it contrasts with the fluent interface design pattern commonly used in OOP.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe Glorious Pipe Operator (Elixir for PHP Devs)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLet\u0026#39;s talk about how how the functional pipe operator helps to simplify and improve code readability and composability, and how it contrasts with the fluent interface design pattern commonly used i...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eJesse Leite \u0026middot; jesseleite.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm so glad that python supports method chaining out of the box, very similar to the pipe operator that Jesse mentions here.  It makes everything much more readable to follow the flow rather than needing to parse nested funcion calls `out(inside())`.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://jesseleite.com/2025/the-glorious-pipe-operator",
      "date_published": "2025-11-02T15:36:24Z",
      "date_modified": "2025-11-02T15:36:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "software",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-861/",
      "url": "https://waylonwalker.com/thought-861/",
      "title": "💭 is AI ruining opensource? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"kP93L683UOE\" title=\"is AI ruining opensource?\" playlabel=\"Play: is AI ruining opensource?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI greatly appreciated the wide variety of experienced maintainers of large oss projects.  From webdev to desktop application.  The most common sentiment here was don’t contribute to open source just to contribute to open source. Bring something meaningful to the project.  Find a project you like, look at the discussions/issues for work or start some discussions.  If there are no meaningful features that you can add to projects that you use and love, make your own thing.  Adam from tailwind really hit on this one several times.  He has made tailwind extensible so that you \u003cstrong\u003edon’t\u003c/strong\u003e have to contribute to tailwind to get new capabilities, you can probably just extend tailwind with your thing.  Its likely that it makes a lot more sense or your use case, and if it turns out that it makes sense for everyone have the discussion about bringing it in.  The upside to small oss projects is that you can move at whatever pace you want and break them all you want when the user base is just you.  As you move your stuff into tailwind you have to be very careful not to break the massive tailwind user base and you have to bend to the release schedule of tailwind.\u003c/p\u003e\n\u003cp\u003eThe other adjacent topic that kept coming back is that low effort Prs are definitely on the rise with some of the projects.  Refactor PRs get automatically closed because they are likely LLM driven, bring little to no value to the project, but bring a ton of risk.  Don’t do this to maintiners.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"kP93L683UOE\" title=\"is AI ruining opensource?\" playlabel=\"Play: is AI ruining opensource?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI greatly appreciated the wide variety of experienced maintainers of large oss projects.  From webdev to desktop application.  The most common sentiment here was don't contribute to open source just to contribute to open source. Bring something meaningful to the project.  Find a project you like, look at the discussions/issues for work or start some discussions.  If there are no meaningful features that you can add to projects that you use and love, make your own thing.  Adam from tailwind really hit on this one several times.  He has made tailwind extensible so that you **don't** have to contribute to tailwind to get new capabilities, you can probably just extend tailwind with your thing.  Its likely that it makes a lot more sense or your use case, and if it turns out that it makes sense for everyone have the discussion about bringing it in.  The upside to small oss projects is that you can move at whatever pace you want and break them all you want when the user base is just you.  As you move your stuff into tailwind you have to be very careful not to break the massive tailwind user base and you have to bend to the release schedule of tailwind.\n\nThe other adjacent topic that kept coming back is that low effort Prs are definitely on the rise with some of the projects.  Refactor PRs get automatically closed because they are likely LLM driven, bring little to no value to the project, but bring a ton of risk.  Don't do this to maintiners.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=kP93L683UOE",
      "date_published": "2025-11-02T15:31:24Z",
      "date_modified": "2025-11-02T15:31:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "oss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/corner-clamp-v1-isometric/",
      "url": "https://waylonwalker.com/shots/corner-clamp-v1-isometric/",
      "title": "Corner Clamp V1 Isometric",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png\" class=\"glightbox-link\" aria-label=\"Corner Clamp V1 isometric\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png\" alt=\"Corner Clamp V1 isometric\"/ data-glightbox=\"description: Corner Clamp V1 isometric\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eIsometric view of my corner clamp v1 that supports up to 3/4\u0026#34; sheets and includes slots for dowell points on 3/4\u0026#34; and 1/2\u0026#34; material.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Corner Clamp V1 isometric](https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png)\n\n\u003e Isometric view of my corner clamp v1 that supports up to 3/4\" sheets and includes slots for dowell points on 3/4\" and 1/2\" material.\n\n",
      "summary": "Isometric view of my corner clamp v1 that supports up to 3/4\" sheets and includes slots for dowell points on 3/4\" and 1/2\" material.",
      "image": "https://dropper.waylonwalker.com/api/file/6a0c5ef1-4f8b-4b4d-9def-60e3168a464c.png",
      "date_published": "2025-11-01T13:39:02Z",
      "date_modified": "2025-11-01T13:39:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/act-ii/",
      "url": "https://waylonwalker.com/shots/act-ii/",
      "title": "Act Ii",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/6128f50f-7d0d-4d9f-abf6-a471350704ab.mp4\" class=\"glightbox-link\" aria-label=\"Act Ii\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/6128f50f-7d0d-4d9f-abf6-a471350704ab.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/6128f50f-7d0d-4d9f-abf6-a471350704ab.mp4\" type=\"video/mp4\"\u003eAct Ii\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eAct Ii\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Act Ii](https://dropper.waylonwalker.com/file/6128f50f-7d0d-4d9f-abf6-a471350704ab.mp4)\n\n\u003e Act Ii\n",
      "summary": "Act Ii",
      "image": "https://dropper.waylonwalker.com/file/6128f50f-7d0d-4d9f-abf6-a471350704ab.mp4",
      "date_published": "2025-11-01T10:13:03Z",
      "date_modified": "2025-11-01T10:13:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/last-judge/",
      "url": "https://waylonwalker.com/shots/last-judge/",
      "title": "Last Judge",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/b83801b8-f203-4344-a429-dd36f95784cc.mp4\" class=\"glightbox-link\" aria-label=\"Last Judge\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/b83801b8-f203-4344-a429-dd36f95784cc.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/b83801b8-f203-4344-a429-dd36f95784cc.mp4\" type=\"video/mp4\"\u003eLast Judge\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eLast Judge\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Last Judge](https://dropper.waylonwalker.com/file/b83801b8-f203-4344-a429-dd36f95784cc.mp4)\n\n\u003e Last Judge\n",
      "summary": "Last Judge",
      "image": "https://dropper.waylonwalker.com/file/b83801b8-f203-4344-a429-dd36f95784cc.mp4",
      "date_published": "2025-11-01T10:12:13Z",
      "date_modified": "2025-11-01T10:12:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/rustfs-rustfs/",
      "url": "https://waylonwalker.com/rustfs-rustfs/",
      "title": "⭐ rustfs rustfs",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/rustfs/rustfs\" 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\"\u003erustfs\u003c/a\u003e by \u003ca href=\"https://github.com/rustfs\" 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\"\u003erustfs\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003e🚀 RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.\u003c/p\u003e\n",
      "content_text": "\n[rustfs](https://github.com/rustfs/rustfs) by [rustfs](https://github.com/rustfs) is a game-changer in its space. Excited to see how it evolves.\n\n🚀 RustFS is an open-source, S3-compatible high-performance object storage system supporting migration and coexistence with other S3-compatible platforms such as MinIO and Ceph.\n",
      "summary": "rustfs by rustfs is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-10-31T12:38:49Z",
      "date_modified": "2025-10-31T12:38:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/rules/",
      "url": "https://waylonwalker.com/rules/",
      "title": "Rules",
      "content_html": "\u003col\u003e\n\u003cli\u003eThere is no such thing as magic\u003c/li\u003e\n\u003cli\u003eBe ready to roll back live deployments\u003c/li\u003e\n\u003cli\u003eIf CI was too fast be suspicious\u003c/li\u003e\n\u003cli\u003eAlways be available after a release.\u003c/li\u003e\n\u003cli\u003eNo one wants to read your slop, if you are too lazy to write it don’t send\nit.\u003c/li\u003e\n\u003c/ol\u003e\n",
      "content_text": "\n1. There is no such thing as magic\n1. Be ready to roll back live deployments\n1. If CI was too fast be suspicious\n1. Always be available after a release.\n1. No one wants to read your slop, if you are too lazy to write it don't send\n   it.\n\n",
      "summary": "There is no such thing as magic 1. Be ready to roll back live deployments 1. If CI was too fast be suspicious 1. Always be available after a release. 1. No...",
      "date_published": "2025-10-30T08:38:48Z",
      "date_modified": "2025-10-30T08:38:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-860/",
      "url": "https://waylonwalker.com/thought-860/",
      "title": "💭 You already have a git server: (Maurycy's blog)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://maurycyz.com/misc/easy_git/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/maurycyz.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/maurycyz.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYou already have a git server: (Maurycy\u0026#39;s blog)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emaurycyz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIt’s so easy to forget low level tech sometimes.  Things that are dead simple and just work without a hitch.  \u003ccode\u003egit\u003c/code\u003e is one of those rock solid things thats very easy to remember all that it does, this is a classic use case.\u003c/p\u003e\n\u003cp\u003eThis just works\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /parent/directory/for/repo\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit clone ssh://username@server/path/to/repo\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIn order to recieve you must update the remote to allow recieve.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit config receive.denyCurrentBranch updateInstead\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow you can pull update push.\u003c/p\u003e\n\u003cp\u003eIt’s funny how this was the way I first learned to do Continuous Deployment to a RHEL7 machine, also how Heroku worked, but its so easy to forget this solution is there.  I come across it every few years and immediately have a few use cases in mind.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://maurycyz.com/misc/easy_git/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYou already have a git server: (Maurycy\u0026#39;s blog)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emaurycyz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIt's so easy to forget low level tech sometimes.  Things that are dead simple and just work without a hitch.  `git` is one of those rock solid things thats very easy to remember all that it does, this is a classic use case.\n\nThis just works\n\n``` bash\ncd /parent/directory/for/repo\ngit clone ssh://username@server/path/to/repo\n```\n\nIn order to recieve you must update the remote to allow recieve.\n\n``` bash\ngit config receive.denyCurrentBranch updateInstead\n```\n\nNow you can pull update push.  \n\nIt's funny how this was the way I first learned to do Continuous Deployment to a RHEL7 machine, also how Heroku worked, but its so easy to forget this solution is there.  I come across it every few years and immediately have a few use cases in mind.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://maurycyz.com/misc/easy_git/",
      "date_published": "2025-10-29T13:04:20Z",
      "date_modified": "2025-10-29T13:04:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-859/",
      "url": "https://waylonwalker.com/thought-859/",
      "title": "💭 Please don't give Reflect Orbital money: (Maurycy's blog)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://maurycyz.com/misc/sunlight_as_a_service/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/maurycyz.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/maurycyz.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePlease don\u0026#39;t give Reflect Orbital money: (Maurycy\u0026#39;s blog)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emaurycyz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWell done write up about reflecting solar energy back to earth from low orbit space.  I did not know this was a thing, apparently it is/isn’t.  Solar is a great technology, its largest limitations are that its not consistent.  This tech does not fix this problem, what does is efficient long term storage.  I’ve seen some crazy ideas going back to my days in school, maybe elementry school.  Theres a lot of innovative ways to store potential energy by moving heavy objects uphill whether fluid or solid.  The issue is that energy storage at grid scale is HUGE and not efficient enough.  Even assuming this idea had any legs at all, it still doesn’t solve the problem of inconsistent power because it still cant go through clouds!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://maurycyz.com/misc/sunlight_as_a_service/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePlease don\u0026#39;t give Reflect Orbital money: (Maurycy\u0026#39;s blog)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emaurycyz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWell done write up about reflecting solar energy back to earth from low orbit space.  I did not know this was a thing, apparently it is/isn't.  Solar is a great technology, its largest limitations are that its not consistent.  This tech does not fix this problem, what does is efficient long term storage.  I've seen some crazy ideas going back to my days in school, maybe elementry school.  Theres a lot of innovative ways to store potential energy by moving heavy objects uphill whether fluid or solid.  The issue is that energy storage at grid scale is HUGE and not efficient enough.  Even assuming this idea had any legs at all, it still doesn't solve the problem of inconsistent power because it still cant go through clouds!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://maurycyz.com/misc/sunlight_a_service/",
      "date_published": "2025-10-29T12:45:07Z",
      "date_modified": "2025-10-29T12:45:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "science",
        "solar",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-858/",
      "url": "https://waylonwalker.com/thought-858/",
      "title": "💭 Post by @letitmelo.bsky.social — Bluesky",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/letitmelo.bsky.social/post/3m4bxweqs3k2u\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:4cssogwxqtgf2ogidyq63x7r/bafkreicpsrr7vctapomg533uvr5ai2zwnbvxn6hfhzousicozmrjv3tz7y\" alt=\"Melo (@letitmelo.bsky.social) — I legitimately didn\u0026#39;t know they were competing with Steam and it\u0026#39;s crazy to me that they burnt so much money on what sounds like something with very little (or wildly misguided) market research.\n\u0026lt;p\u0026gt;[contains quote post or other embedded content]\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Melo (@letitmelo.bsky.social) — I legitimately didn\u0026#39;t know they were competing with Steam and it\u0026#39;s crazy to me that they burnt so much money on what sounds like something with very little (or wildly misguided) market research.\n\u0026lt;p\u0026gt;[contains quote post or other embedded content]\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eMelo (@letitmelo.bsky.social)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eI legitimately didn\u0026#39;t know they were competing with Steam and it\u0026#39;s crazy to me that they burnt so much money on what sounds like something with very little (or wildly misguided) market research.\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e[…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eWild to see the LinkedIn post linked here to see how out of touch this feels.  I find it astonishing that they have something so ingrained into gaming culture as twitch, yet build something like Prime Gaming.  Maybe I have no idea what Prime gaming is, but it feels like the opposite of ownership.  What I get from steam is a sense of ownership.  I own the desktop/laptop/handheld, no one \u003cstrong\u003ecough\u003c/strong\u003e \u003cem\u003enintendo\u003c/em\u003e \u003cstrong\u003ecough cough\u003c/strong\u003e cant remotely disable my device for using it inappropriately.  I have a sense of trust with steam that as long as Gabe is alive I own what I paid for and will be able to open up and play anything at any time on any device I want.  It might be a $100 dell workstation raised out of the coorporate refurb bin, it might be a high end machine, It could be my 2010 gateway or my 2045 custom build and they are all likely to play a good amount of my library at some level.  I still understand that I really own nothing and the moment steam turns off its servers its quite likely  that everything is broken, but its by far the best we have.  Far from the status quo we are headed towards with subscription and cloud based gaming.  If they wanted to disrupt steam they did not understand their audience.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/letitmelo.bsky.social/post/3m4bxweqs3k2u\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:4cssogwxqtgf2ogidyq63x7r/bafkreicpsrr7vctapomg533uvr5ai2zwnbvxn6hfhzousicozmrjv3tz7y\" alt=\"Melo (@letitmelo.bsky.social) — I legitimately didn\u0026#39;t know they were competing with Steam and it\u0026#39;s crazy to me that they burnt so much money on what sounds like something with very little (or wildly misguided) market research.\n\n[contains quote post or other embedded content]\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMelo (@letitmelo.bsky.social)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI legitimately didn\u0026#39;t know they were competing with Steam and it\u0026#39;s crazy to me that they burnt so much money on what sounds like something with very little (or wildly misguided) market research.\n\n[...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWild to see the LinkedIn post linked here to see how out of touch this feels.  I find it astonishing that they have something so ingrained into gaming culture as twitch, yet build something like Prime Gaming.  Maybe I have no idea what Prime gaming is, but it feels like the opposite of ownership.  What I get from steam is a sense of ownership.  I own the desktop/laptop/handheld, no one **cough** _nintendo_ **cough cough** cant remotely disable my device for using it inappropriately.  I have a sense of trust with steam that as long as Gabe is alive I own what I paid for and will be able to open up and play anything at any time on any device I want.  It might be a $100 dell workstation raised out of the coorporate refurb bin, it might be a high end machine, It could be my 2010 gateway or my 2045 custom build and they are all likely to play a good amount of my library at some level.  I still understand that I really own nothing and the moment steam turns off its servers its quite likely  that everything is broken, but its by far the best we have.  Far from the status quo we are headed towards with subscription and cloud based gaming.  If they wanted to disrupt steam they did not understand their audience.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/letitmelo.bsky.social/post/3m4bxweqs3k2u",
      "date_published": "2025-10-29T03:29:25Z",
      "date_modified": "2025-10-29T03:29:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-857/",
      "url": "https://waylonwalker.com/thought-857/",
      "title": "💭 Bazzite on X: \"@thesvpanda @_Messier_33 @LeagueOfLegends Unfor...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/bazzite_gg/status/1983204433627623590\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eROASTED\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUnfortunately that game uses some of the worst spyware in the industry, it will never work outside of \u0026gt; Windows with secure boot enabled and TPM hardware.\u003c/p\u003e\n\u003cp\u003eConsider Dota 2 or other mobas by competent developers\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/bazzite_gg/status/1983204433627623590\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nROASTED\n\n\u003e Unfortunately that game uses some of the worst spyware in the industry, it will never work outside of \u003e Windows with secure boot enabled and TPM hardware.\n\u003e \n\u003e Consider Dota 2 or other mobas by competent developers\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/bazzite_gg/status/1983204433627623590",
      "date_published": "2025-10-28T21:46:30Z",
      "date_modified": "2025-10-28T21:46:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-855/",
      "url": "https://waylonwalker.com/thought-855/",
      "title": "💭 Post by @meredithmeredith.bsky.social — Bluesky",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/meredithmeredith.bsky.social/post/3m46a2fm5ac23\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:so5r7asbd26pmnnoerksklor/bafkreihm5jczz7o5i5mlgxpvrevjo5ognicavscbohsorgqjw5el5d3dmu\" alt=\"Meredith Whittaker  (@meredithmeredith.bsky.social) — 📣THREAD: It’s surprising to me that so many people were surprised to learn that Signal runs partly on AWS (something we can do because we use encryption to make sure no one but you–not AWS, not Signal, not anyone–can access your comms). \n\u0026lt;p\u0026gt;It’s also concerning. 1/\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;[contains quote post or other embedded content]\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Meredith Whittaker  (@meredithmeredith.bsky.social) — 📣THREAD: It’s surprising to me that so many people were surprised to learn that Signal runs partly on AWS (something we can do because we use encryption to make sure no one but you–not AWS, not Signal, not anyone–can access your comms). \n\u0026lt;p\u0026gt;It’s also concerning. 1/\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;[contains quote post or other embedded content]\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eMeredith Whittaker  (@meredithmeredith.bsky.social)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003e📣THREAD: It’s surprising to me that so many people were surprised to learn that Signal runs partly on AWS (something we can do because we use encryption to make sure no one but you–not AWS, …\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat justification for using the cloud.  The infrastructure requirement for signal to be such a great app would be massive for a small team with low budget.  The cloud is fantastic at unknown scaling, bursts beyond reasonable capacity to run yourself, getting compute \u003cstrong\u003eeverywhere\u003c/strong\u003e in the world, and offloading huge infrastructure management costs.\u003c/p\u003e\n\u003cp\u003eDHH is 100% right that we have gone too far, too many things come out cloud first for services that can be ran locally \u003cstrong\u003ecough\u003c/strong\u003e \u003cem\u003esuch as your bed\u003c/em\u003e \u003cstrong\u003ecough cough\u003c/strong\u003e.  One week ago when the world came to a hault, I did not bat an eye at these small teams with complex requirements going down with AWS.\u003c/p\u003e\n\u003cp\u003eTheir own products seem quite damning to me.  It signals that they cannot themselves become resilient to themselves.  It shows how hard this problem is, how much cost in complexity and resources it requires.  I’m sure there are fail overs that happened successfully that we will never hear about, critical products with large engineering overhead.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/meredithmeredith.bsky.social/post/3m46a2fm5ac23\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:so5r7asbd26pmnnoerksklor/bafkreihm5jczz7o5i5mlgxpvrevjo5ognicavscbohsorgqjw5el5d3dmu\" alt=\"Meredith Whittaker  (@meredithmeredith.bsky.social) — 📣THREAD: It’s surprising to me that so many people were surprised to learn that Signal runs partly on AWS (something we can do because we use encryption to make sure no one but you–not AWS, not Signal, not anyone–can access your comms). \n\nIt’s also concerning. 1/\n\n[contains quote post or other embedded content]\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMeredith Whittaker  (@meredithmeredith.bsky.social)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e📣THREAD: It’s surprising to me that so many people were surprised to learn that Signal runs partly on AWS (something we can do because we use encryption to make sure no one but you–not AWS, ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGreat justification for using the cloud.  The infrastructure requirement for signal to be such a great app would be massive for a small team with low budget.  The cloud is fantastic at unknown scaling, bursts beyond reasonable capacity to run yourself, getting compute **everywhere** in the world, and offloading huge infrastructure management costs.\n\nDHH is 100% right that we have gone too far, too many things come out cloud first for services that can be ran locally **cough** _such as your bed_ **cough cough**.  One week ago when the world came to a hault, I did not bat an eye at these small teams with complex requirements going down with AWS.  \n\nTheir own products seem quite damning to me.  It signals that they cannot themselves become resilient to themselves.  It shows how hard this problem is, how much cost in complexity and resources it requires.  I'm sure there are fail overs that happened successfully that we will never hear about, critical products with large engineering overhead.  \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/meredithmeredith.bsky.social/post/3m46a2fm5ac23",
      "date_published": "2025-10-28T02:16:52Z",
      "date_modified": "2025-10-28T02:16:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/schollz-croc/",
      "url": "https://waylonwalker.com/schollz-croc/",
      "title": "⭐ schollz croc",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/schollz/croc\" 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\"\u003ecroc\u003c/a\u003e by \u003ca href=\"https://github.com/schollz\" 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\"\u003eschollz\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eEasily and securely send things from one computer to another 🐊 📦\u003c/p\u003e\n",
      "content_text": "\nJust starred [croc](https://github.com/schollz/croc) by [schollz](https://github.com/schollz). It's an exciting project with a lot to offer.\n\nEasily and securely send things from one computer to another :crocodile: :package:\n",
      "summary": "Just starred croc by schollz. It's an exciting project with a lot to offer.",
      "date_published": "2025-10-27T12:33:54Z",
      "date_modified": "2025-10-27T12:33:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/uv-s3-sync-with-dotenv/",
      "url": "https://waylonwalker.com/uv-s3-sync-with-dotenv/",
      "title": "uv s3 sync with dotenv",
      "content_html": "\u003cp\u003eI often want to run an s3 sync in an isolated environment, I don’t want to set\nany environment variables, I don’t want anything secret in my history, and I\ndon’t want to change my dotenv into something that exports variables, I just\nwant s3 sync to work.  \u003ccode\u003edotenv run\u003c/code\u003e is the tool that I’ve been using for this,\nand this uv one liner lets it run fully isolated from the project.\u003c/p\u003e\n\u003ch2 id=\"one-liner\"\u003eone liner \u003ca href=\"#one-liner\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tool run --from \u003cspan class=\"s1\"\u003e\u0026#39;python-dotenv[cli]\u0026#39;\u003c/span\u003e dotenv run -- uv tool run --from awscli aws s3 sync s3://bucket data\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"multi-line\"\u003emulti-line \u003ca href=\"#multi-line\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003esame thing formatted for readability\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tool run \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --from \u003cspan class=\"s1\"\u003e\u0026#39;python-dotenv[cli]\u0026#39;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  dotenv run -- \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tool run \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --from awscli \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  aws s3 sync s3://dropper data\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThere are probably 10 ways to skin this cat, but this is what I did, if you\nhave a better way let me know, I’ll link you below.\u003c/p\u003e\n",
      "content_text": "\nI often want to run an s3 sync in an isolated environment, I don't want to set\nany environment variables, I don't want anything secret in my history, and I\ndon't want to change my dotenv into something that exports variables, I just\nwant s3 sync to work.  `dotenv run` is the tool that I've been using for this,\nand this uv one liner lets it run fully isolated from the project.\n\n\n## one liner\n\n``` bash\nuv tool run --from 'python-dotenv[cli]' dotenv run -- uv tool run --from awscli aws s3 sync s3://bucket data\n```\n\n\n## multi-line\n\nsame thing formatted for readability\n\n``` bash\nuv tool run \\\n  --from 'python-dotenv[cli]' \\\n  dotenv run -- \\\nuv tool run \\\n  --from awscli \\\n  aws s3 sync s3://dropper data\n```\n\nThere are probably 10 ways to skin this cat, but this is what I did, if you\nhave a better way let me know, I'll link you below.\n",
      "summary": "I often want to run an s3 sync in an isolated environment, I don't want to set any environment variables, I don't want anything secret in my history, and I...",
      "date_published": "2025-10-26T10:16:41Z",
      "date_modified": "2025-10-26T10:16:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/first-3d-printed-threads/",
      "url": "https://waylonwalker.com/first-3d-printed-threads/",
      "title": "First 3d Printed Threads",
      "content_html": "\u003cp\u003eWorking on an upcoming project that requires some threaded screws.  Trying to\nkeep a low budget on this one with as much to come off of the printer as I can.\nIt might become a slant3d portals product if it works out.  I always like\nmaking test prints for stuff like this especially to see how the feel is off of\nthe printer that is going to print the final product and take much longer.\nFirst try was a success.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4\" class=\"glightbox-link\" aria-label=\"b485b759-719a-4aa0-aa8d-f98e0a5e1ac3-1080p.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4\" type=\"video/mp4\"\u003eb485b759-719a-4aa0-aa8d-f98e0a5e1ac3-1080p.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"what-worked\"\u003eWhat worked \u003ca href=\"#what-worked\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI started out looking up standard half inch thread pitch and size, but ran out\nof time to get the exact profile of a half inch bolt, so I will need to fix\nthat later.  Th\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/376691bc-8aec-40f7-9137-9338cc2265b2.png\" class=\"glightbox-link\" aria-label=\"Boolean operation to remove threads from the block with 0.1mm offset\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/376691bc-8aec-40f7-9137-9338cc2265b2.png\" alt=\"Boolean operation to remove threads from the block with 0.1mm offset\"/ data-glightbox=\"description: Boolean operation to remove threads from the block with 0.1mm offset\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe print orientation is critical for strength here.  This part is a full 1/2:\nso it should be strong either way, but to make sure we are printing the bolt\nhorizontally to get nice long print layers.  To do this we have to give it a\nbit of a flat spot on the top and bottom.  This does not hurt performance, if\nanything it probably helps give some room for poor tolerances.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/60f37fc2-7e4b-4671-9bb4-582715e1534d.webp\" class=\"glightbox-link\" aria-label=\"Print orientation of the test parts\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/60f37fc2-7e4b-4671-9bb4-582715e1534d.webp\" alt=\"Print orientation of the test parts\"/ data-glightbox=\"description: Print orientation of the test parts\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cul\u003e\n\u003cli\u003e.5\u0026#34; od\u003c/li\u003e\n\u003cli\u003e13tpi pitch\u003c/li\u003e\n\u003cli\u003enon-standard profile… kids needed me and I called it good enough to run a test.\u003c/li\u003e\n\u003cli\u003e0.1mm offset on all surfaces\u003c/li\u003e\n\u003cli\u003eexternal threads printed horizontally\u003c/li\u003e\n\u003cli\u003einternal threads printed vertically\u003c/li\u003e\n\u003cli\u003eChamfer all lead-in/lead-out\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nWorking on an upcoming project that requires some threaded screws.  Trying to\nkeep a low budget on this one with as much to come off of the printer as I can.\nIt might become a slant3d portals product if it works out.  I always like\nmaking test prints for stuff like this especially to see how the feel is off of\nthe printer that is going to print the final product and take much longer.\nFirst try was a success.\n\n![b485b759-719a-4aa0-aa8d-f98e0a5e1ac3-1080p.mp4](https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4)\n\n## What worked\n\nI started out looking up standard half inch thread pitch and size, but ran out\nof time to get the exact profile of a half inch bolt, so I will need to fix\nthat later.  Th\n\n![Boolean operation to remove threads from the block with 0.1mm offset](https://dropper.waylonwalker.com/api/file/376691bc-8aec-40f7-9137-9338cc2265b2.png)\n\nThe print orientation is critical for strength here.  This part is a full 1/2:\nso it should be strong either way, but to make sure we are printing the bolt\nhorizontally to get nice long print layers.  To do this we have to give it a\nbit of a flat spot on the top and bottom.  This does not hurt performance, if\nanything it probably helps give some room for poor tolerances.\n\n![Print orientation of the test parts](https://dropper.waylonwalker.com/api/file/60f37fc2-7e4b-4671-9bb4-582715e1534d.webp)\n\n* .5\" od\n* 13tpi pitch\n* non-standard profile... kids needed me and I called it good enough to run a test.\n* 0.1mm offset on all surfaces\n* external threads printed horizontally\n* internal threads printed vertically\n* Chamfer all lead-in/lead-out\n\n",
      "summary": "Working on an upcoming project that requires some threaded screws. Trying to keep a low budget on this one with as much to come off of the printer as I can....",
      "date_published": "2025-10-24T14:19:49Z",
      "date_modified": "2025-10-24T14:19:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-854/",
      "url": "https://waylonwalker.com/thought-854/",
      "title": "💭 Ellie Huxtable on evolving Atuin (her shell history tool) for ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"OK3HrqDXqtU\" title=\"Ellie Huxtable on evolving Atuin (her shell history tool) for the desktop with Rust and Tauri\" playlabel=\"Play: Ellie Huxtable on evolving Atuin (her shell history tool) for the desktop with Rust and Tauri\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAtuin desktop sounds dope AF, tried to install it off the \u003ca href=\"/aur/\" class=\"glossary-term\" title=\"Arch User Repository, a collection of community maintained packages for archlinux.\"\u003eAUR\u003c/a\u003e and it was broken for me.  Seems early and the dev team is all in on mac.  They have an official .deb and .rpm.  I’ll have to try again later, maybe the binary will work.\u003c/p\u003e\n\u003cp\u003eThe idea of building out runbooks from my Atuin data sounds dope AF.  It sounds like a mix of markdown and executable cells like a jupyter notebook, but not.  Really pitching hard to those of us in the system administration, dev ops, SRE space.  Having something that you walk through when a system goes down and you are feeling panicked in DR mode sounds relieving.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"OK3HrqDXqtU\" title=\"Ellie Huxtable on evolving Atuin (her shell history tool) for the desktop with Rust and Tauri\" playlabel=\"Play: Ellie Huxtable on evolving Atuin (her shell history tool) for the desktop with Rust and Tauri\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAtuin desktop sounds dope AF, tried to install it off the AUR and it was broken for me.  Seems early and the dev team is all in on mac.  They have an official .deb and .rpm.  I'll have to try again later, maybe the binary will work.\n\nThe idea of building out runbooks from my Atuin data sounds dope AF.  It sounds like a mix of markdown and executable cells like a jupyter notebook, but not.  Really pitching hard to those of us in the system administration, dev ops, SRE space.  Having something that you walk through when a system goes down and you are feeling panicked in DR mode sounds relieving.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=OK3HrqDXqtU\u0026t=1675s",
      "date_published": "2025-10-24T00:53:16Z",
      "date_modified": "2025-10-24T00:53:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "thought",
        "tui"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-853/",
      "url": "https://waylonwalker.com/thought-853/",
      "title": "💭 My Bed Doesn't Work Because of AWS Outage? TheStandup - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"J893_8HlkPM\" title=\"AWS Outage And ANOTHER AI BROWSER???? - TheStandup\" playlabel=\"Play: AWS Outage And ANOTHER AI BROWSER???? - TheStandup\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eCloud is cooked bois.  Seriously too much dumb shit relies on the cloud.  Too much critical shit relies on single AZ’s.  If normies are literally loosing sleep over an AWS outage (queue the Uncle Roger Voice), You’ve Fucked up.  It’s wild to even think about a bed relying on the cloud let alone fully stop working when UE-1 goes down.  I want to live in a world of opt in FEATURES, things that bring value to a product because it makes it better.  Somehow a bed smells suspiciously like a cash grab for a subscription because its cloud connected.  And yet for some reason it takes 16GeeeBee’s per month.  I don’t own one of these, and I don’t want to.  I don’t want a subscription for everything, I want my shit to just work.  The future we are headed towards a world that is ever more reliant on a few key clouds.  Which is fine.  It’s fantastic that small companies can start and scale without owning an infrastructure team.  It’s great that they have the ability to give us many nines of reliability.  Some things just don’t need the cloud.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"J893_8HlkPM\" title=\"AWS Outage And ANOTHER AI BROWSER???? - TheStandup\" playlabel=\"Play: AWS Outage And ANOTHER AI BROWSER???? - TheStandup\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nCloud is cooked bois.  Seriously too much dumb shit relies on the cloud.  Too much critical shit relies on single AZ's.  If normies are literally loosing sleep over an AWS outage (queue the Uncle Roger Voice), You've Fucked up.  It's wild to even think about a bed relying on the cloud let alone fully stop working when UE-1 goes down.  I want to live in a world of opt in FEATURES, things that bring value to a product because it makes it better.  Somehow a bed smells suspiciously like a cash grab for a subscription because its cloud connected.  And yet for some reason it takes 16GeeeBee's per month.  I don't own one of these, and I don't want to.  I don't want a subscription for everything, I want my shit to just work.  The future we are headed towards a world that is ever more reliant on a few key clouds.  Which is fine.  It's fantastic that small companies can start and scale without owning an infrastructure team.  It's great that they have the ability to give us many nines of reliability.  Some things just don't need the cloud.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=J893_8HlkPM",
      "date_published": "2025-10-24T00:48:31Z",
      "date_modified": "2025-10-24T00:48:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cloud",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-852/",
      "url": "https://waylonwalker.com/thought-852/",
      "title": "💭 #artificialintelligence #hiring | Gary Vaynerchuk | 20 comments",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.linkedin.com/posts/garyvaynerchuk_artificialintelligence-hiring-activity-7387261666289373184-BOIo\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dms.licdn.com/playlist/vid/v2/D4E05AQEiRS8X3qmy3w/thumbnail-with-play-button-overlay-high/B4EZoTTPiyKcDg-/0/1761260417550?e=2147483647\u0026amp;v=beta\u0026amp;t=LG9qTvyFlSMZDW8IaFInudCqgiIrc2EiWOeM1UcV8TE\" alt=\"#artificialintelligence #hiring | Gary Vaynerchuk | 120 comments — I care about humanity first, THEN skills .. and in this AI-scaled world, human sh*t will win 🔑\n\u0026lt;p\u0026gt;#artificialintelligence #hiring | 120 comments on LinkedIn\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: #artificialintelligence #hiring | Gary Vaynerchuk | 120 comments — I care about humanity first, THEN skills .. and in this AI-scaled world, human sh*t will win 🔑\n\u0026lt;p\u0026gt;#artificialintelligence #hiring | 120 comments on LinkedIn\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003e#artificialintelligence #hiring | Gary Vaynerchuk | 120 comments\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eI care about humanity first, THEN skills .. and in this AI-scaled world, human sh*t will win 🔑\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e#artificialintelligence #hiring | 120 comments on LinkedIn\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eLinkedIn · linkedin.com\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eMore Human stuff that’s what we will be doing.  Less looking at docs, more architecting (which suspiciously looks like writing docs), more decision making, more explaining.  This is a good positive take on AI right now.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.linkedin.com/posts/garyvaynerchuk_artificialintelligence-hiring-activity-7387261666289373184-BOIo\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dms.licdn.com/playlist/vid/v2/D4E05AQEiRS8X3qmy3w/thumbnail-with-play-button-overlay-high/B4EZoTTPiyKcDg-/0/1761260417550?e=2147483647\u0026amp;v=beta\u0026amp;t=LG9qTvyFlSMZDW8IaFInudCqgiIrc2EiWOeM1UcV8TE\" alt=\"#artificialintelligence #hiring | Gary Vaynerchuk | 120 comments — I care about humanity first, THEN skills .. and in this AI-scaled world, human sh*t will win 🔑\n\n#artificialintelligence #hiring | 120 comments on LinkedIn\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e#artificialintelligence #hiring | Gary Vaynerchuk | 120 comments\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI care about humanity first, THEN skills .. and in this AI-scaled world, human sh*t will win 🔑\n\n#artificialintelligence #hiring | 120 comments on LinkedIn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLinkedIn \u0026middot; linkedin.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nMore Human stuff that's what we will be doing.  Less looking at docs, more architecting (which suspiciously looks like writing docs), more decision making, more explaining.  This is a good positive take on AI right now.  \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.linkedin.com/posts/garyvaynerchuk_artificialintelligence-hiring-activity-7387261666289373184-BOIo",
      "date_published": "2025-10-24T00:39:49Z",
      "date_modified": "2025-10-24T00:39:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/3d-printed-thread-test/",
      "url": "https://waylonwalker.com/shots/3d-printed-thread-test/",
      "title": "3d Printed Thread Test",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4\" class=\"glightbox-link\" aria-label=\"3d printed thread test\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4\" type=\"video/mp4\"\u003e3d printed thread test\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSpinning a 3d printed test block on a threaded t handle.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![3d printed thread test](https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4)\n\n\u003e Spinning a 3d printed test block on a threaded t handle.\n\n",
      "summary": "Spinning a 3d printed test block on a threaded t handle.",
      "image": "https://dropper.waylonwalker.com/api/file/21498d89-41e1-45de-9b35-e3dd059de505.mp4",
      "date_published": "2025-10-23T14:53:33Z",
      "date_modified": "2025-10-23T14:53:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/fastapi/",
      "url": "https://waylonwalker.com/fastapi/",
      "title": "fastapi",
      "content_html": "\u003cp\u003eFastAPI is a modern and efficient web framework for Python, built on top of the\nStarlette web framework, and pydantic for data validation and serialization.\u003c/p\u003e\n\u003ch2 id=\"from-the-fastapi-documentationhttpsfastapitiangolocom\"\u003eFrom the \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 documentation\u003c/a\u003e \u003ca href=\"#from-the-fastapi-documentationhttpsfastapitiangolocom\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.\u003c/p\u003e\n\u003cp\u003eThe key features are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFast: Very high performance, on par with NodeJS and Go (thanks to Starlette and Pydantic). One of the fastest Python frameworks available.\u003c/li\u003e\n\u003cli\u003eFast to code: Increase the speed to develop features by about 200% to 300%. *\u003c/li\u003e\n\u003cli\u003eFewer bugs: Reduce about 40% of human (developer) induced errors. *\u003c/li\u003e\n\u003cli\u003eIntuitive: Great editor support. Completion everywhere. Less time debugging.\u003c/li\u003e\n\u003cli\u003eEasy: Designed to be easy to use and learn. Less time reading docs.\u003c/li\u003e\n\u003cli\u003eShort: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs.\u003c/li\u003e\n\u003cli\u003eRobust: Get production-ready code. With automatic interactive documentation.\u003c/li\u003e\n\u003cli\u003eStandards-based: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mentioned-in-2025-stack-overflow-surveyhttpssurveystackoverflowco2025technology1-web-frameworks-and-technologies\"\u003eMentioned in \u003ca href=\"https://survey.stackoverflow.co/2025/technology/#1-web-frameworks-and-technologies\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/survey.stackoverflow.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/survey.stackoverflow.co.ico\" class=\"has-avatar  has-avatar-before\"\u003e2025 Stack Overflow Survey\u003c/a\u003e \u003ca href=\"#mentioned-in-2025-stack-overflow-surveyhttpssurveystackoverflowco2025technology1-web-frameworks-and-technologies\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe +5 point increase for FastAPI is one of the most significant shifts in the\nweb framework space. This signals a strong trend towards using Python for\nbuilding performant APIs and reflects the overall strength of the Python\necosystem.\u003c/p\u003e\n",
      "content_text": "\nFastAPI is a modern and efficient web framework for Python, built on top of the\nStarlette web framework, and pydantic for data validation and serialization.\n\n## From the [FastAPI documentation](https://fastapi.tiangolo.com/)\n\nFastAPI is a modern, fast (high-performance), web framework for building APIs with Python based on standard Python type hints.\n\nThe key features are:\n\n* Fast: Very high performance, on par with NodeJS and Go (thanks to Starlette and Pydantic). One of the fastest Python frameworks available.\n* Fast to code: Increase the speed to develop features by about 200% to 300%. *\n* Fewer bugs: Reduce about 40% of human (developer) induced errors. *\n* Intuitive: Great editor support. Completion everywhere. Less time debugging.\n* Easy: Designed to be easy to use and learn. Less time reading docs.\n* Short: Minimize code duplication. Multiple features from each parameter declaration. Fewer bugs.\n* Robust: Get production-ready code. With automatic interactive documentation.\n* Standards-based: Based on (and fully compatible with) the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema.\n\n## Mentioned in [2025 Stack Overflow Survey](https://survey.stackoverflow.co/2025/technology/#1-web-frameworks-and-technologies)\n\nThe +5 point increase for FastAPI is one of the most significant shifts in the\nweb framework space. This signals a strong trend towards using Python for\nbuilding performant APIs and reflects the overall strength of the Python\necosystem.\n",
      "summary": "FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.",
      "date_published": "2025-10-22T09:26:17Z",
      "date_modified": "2025-10-22T09:26:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/starlette-head-request/",
      "url": "https://waylonwalker.com/starlette-head-request/",
      "title": "starlette head request",
      "content_html": "\u003cp\u003e\u003ca href=\"/starlette/\" class=\"glossary-term\" title=\"Starlette is a low level web framework for modern (as of 2025) async python development most famously used by \u003ca href=\"/fastapi/\" class=\"glossary-term\" title=\"FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.\"\u003eFastAPI\u003c/a\u003e.\"\u003eStarlette\u003c/a\u003e has a head request that works right along side your get requests.\nThis morning I fiddled around with custom routes for \u003ccode\u003eGET\u003c/code\u003e and \u003ccode\u003eHEAD\u003c/code\u003e, but had\nto manually set some things about the file, and was still missing \u003ccode\u003ee-tag\u003c/code\u003e in\nthe end.  Turns out as a developer you can \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\" data-preview=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\"\u003ejust\u003c/a\u003e add a \u003ccode\u003ehead\u003c/code\u003e route to\nyour \u003ccode\u003eget\u003c/code\u003e routes and starlette will strip the content for you, while\npreserving all of those good headers that fastapi \u003ccode\u003eFileResponse\u003c/code\u003e created\nautomatically for you.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efastapi\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eAPIRouter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efastapi.response\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eFileResponse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003efastapi\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eRequest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003erouter\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eAPIRouter\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@router.get\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/file/\u003c/span\u003e\u003cspan class=\"si\"\u003e{filename}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@router.head\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/file/\u003c/span\u003e\u003cspan class=\"si\"\u003e{filename}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003easync\u003c/span\u003e \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eget_file\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efilename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003erequest\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eRequest\u003c/span\u003e\u003cspan class=\"p\"\u003e,):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eheaders\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"s2\"\u003e\u0026#34;Cache-Control\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;no-cache, no-store, must-revalidate\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epathlib\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003efilename\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ePath\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;data/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003efilename\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"n\"\u003efilename\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eexists\u003c/span\u003e\u003cspan class=\"p\"\u003e():\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eraise\u003c/span\u003e \u003cspan class=\"n\"\u003eHTTPException\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estatus_code\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"mi\"\u003e404\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003edetail\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;File not found\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"n\"\u003eFileResponse\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efilename\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eheaders\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eheaders\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is an example of the response with curl.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ curl -I -L \u003cspan class=\"s2\"\u003e\u0026#34;http://localhost:8100/api/file/e5523925-1565-454c-bab3-c70c4deabc83.webp?width=250\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHTTP/1.1 \u003cspan class=\"m\"\u003e200\u003c/span\u003e OK\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edate: Wed, \u003cspan class=\"m\"\u003e22\u003c/span\u003e Oct \u003cspan class=\"m\"\u003e2025\u003c/span\u003e 14:16:03 GMT\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eserver: uvicorn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecache-control: no-cache, no-store, must-revalidate\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econtent-type: image/webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econtent-length: \u003cspan class=\"m\"\u003e17206\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elast-modified: Tue, \u003cspan class=\"m\"\u003e23\u003c/span\u003e Sep \u003cspan class=\"m\"\u003e2025\u003c/span\u003e 14:03:20 GMT\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eetag: f891660c1543feb1af7564f08abdd511\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ curl -I -L \u003cspan class=\"s2\"\u003e\u0026#34;http://localhost:8100/api/file/unknown-file.webp?width=250\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHTTP/1.1 \u003cspan class=\"m\"\u003e404\u003c/span\u003e Not Found\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edate: Wed, \u003cspan class=\"m\"\u003e22\u003c/span\u003e Oct \u003cspan class=\"m\"\u003e2025\u003c/span\u003e 14:16:11 GMT\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eserver: uvicorn\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econtent-length: \u003cspan class=\"m\"\u003e27\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003econtent-type: application/json\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nStarlette has a head request that works right along side your get requests.\nThis morning I fiddled around with custom routes for `GET` and `HEAD`, but had\nto manually set some things about the file, and was still missing `e-tag` in\nthe end.  Turns out as a developer you can \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\"\u003ejust\u003c/a\u003e add a `head` route to\nyour `get` routes and starlette will strip the content for you, while\npreserving all of those good headers that fastapi `FileResponse` created\nautomatically for you.\n\n``` python\nfrom fastapi import APIRouter\nfrom fastapi.response import FileResponse\nfrom fastapi import Request\nfrom pathlib import Path\n\nrouter = APIRouter()\n\n@router.get(\"/file/{filename}\")\n@router.head(\"/file/{filename}\")\nasync def get_file(filename: str, request: Request,):\n    headers = {\n      \"Cache-Control\": \"no-cache, no-store, must-revalidate\",\n    }\n    from pathlib import Path\n    filename = Path(f\"data/{filename}\")\n    if not filename.exists():\n        raise HTTPException(status_code=404, detail=\"File not found\")\n    return FileResponse(filename, headers=headers)\n```\n\nHere is an example of the response with curl.\n\n``` bash\n❯ curl -I -L \"http://localhost:8100/api/file/e5523925-1565-454c-bab3-c70c4deabc83.webp?width=250\"\nHTTP/1.1 200 OK\ndate: Wed, 22 Oct 2025 14:16:03 GMT\nserver: uvicorn\ncache-control: no-cache, no-store, must-revalidate\ncontent-type: image/webp\ncontent-length: 17206\nlast-modified: Tue, 23 Sep 2025 14:03:20 GMT\netag: f891660c1543feb1af7564f08abdd511\n\n❯ curl -I -L \"http://localhost:8100/api/file/unknown-file.webp?width=250\"\nHTTP/1.1 404 Not Found\ndate: Wed, 22 Oct 2025 14:16:11 GMT\nserver: uvicorn\ncontent-length: 27\ncontent-type: application/json\n```\n",
      "summary": "Starlette has a head request that works right along side your get requests. This morning I fiddled around with custom routes for and , but had to manually...",
      "date_published": "2025-10-22T09:11:31Z",
      "date_modified": "2025-10-22T09:11:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "python",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/dont-copy-your-gitignore-to-stignore/",
      "url": "https://waylonwalker.com/dont-copy-your-gitignore-to-stignore/",
      "title": "Don't copy your gitignore to stignore",
      "content_html": "\u003cp\u003eToday I learned that while \u003ccode\u003e.stignore\u003c/code\u003e and \u003ccode\u003e.gitignore\u003c/code\u003e look very similar they\nare not.  My obsidian directory had been locked up for a few weeks and I had no\nidea why until I logged into the web ui and saw errors.  The errors were some\nconfusing regex validator not matching.  I don’t know what the exact error was,\nbut I went in and only ignored the files I cared about instead of the entire\ngitignore.  Primarily I was getting conflicts in my \u003ccode\u003e.git\u003c/code\u003e directory.\u003c/p\u003e\n",
      "content_text": "\nToday I learned that while `.stignore` and `.gitignore` look very similar they\nare not.  My obsidian directory had been locked up for a few weeks and I had no\nidea why until I logged into the web ui and saw errors.  The errors were some\nconfusing regex validator not matching.  I don't know what the exact error was,\nbut I went in and only ignored the files I cared about instead of the entire\ngitignore.  Primarily I was getting conflicts in my `.git` directory.\n",
      "summary": "Today I learned that while and look very similar they are not. My obsidian directory had been locked up for a few weeks and I had no idea why until I logged...",
      "date_published": "2025-10-21T18:43:00Z",
      "date_modified": "2025-10-21T18:43:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab"
      ]
    },
    {
      "id": "https://waylonwalker.com/pytauri-pytauri/",
      "url": "https://waylonwalker.com/pytauri-pytauri/",
      "title": "⭐ pytauri pytauri",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/pytauri\" 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\"\u003epytauri\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/pytauri/pytauri\" 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\"\u003epytauri\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eTauri binding for Python through Pyo3\u003c/p\u003e\n",
      "content_text": "\n[pytauri](https://github.com/pytauri) has done a fantastic job with [pytauri](https://github.com/pytauri/pytauri). Highly recommend taking a look.\n\nTauri binding for Python through Pyo3\n",
      "summary": "pytauri has done a fantastic job with pytauri. Highly recommend taking a look.",
      "date_published": "2025-10-16T12:19:42Z",
      "date_modified": "2025-10-16T12:19:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/fullcontrolxyz-fullcontrol/",
      "url": "https://waylonwalker.com/fullcontrolxyz-fullcontrol/",
      "title": "⭐ FullControlXYZ fullcontrol",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/FullControlXYZ/fullcontrol\" 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\"\u003efullcontrol\u003c/a\u003e by \u003ca href=\"https://github.com/FullControlXYZ\" 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\"\u003eFullControlXYZ\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003ePython version of FullControl for toolpath design (and more) - the readme below is best source of information\u003c/p\u003e\n",
      "content_text": "\nThe work on [fullcontrol](https://github.com/FullControlXYZ/fullcontrol) by [FullControlXYZ](https://github.com/FullControlXYZ).\n\nPython version of FullControl for toolpath design (and more) - the readme below is best source of information\n",
      "summary": "The work on fullcontrol by FullControlXYZ.",
      "date_published": "2025-10-15T00:04:22Z",
      "date_modified": "2025-10-15T00:04:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/zauberzeug-nicegui/",
      "url": "https://waylonwalker.com/zauberzeug-nicegui/",
      "title": "⭐ zauberzeug nicegui",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/zauberzeug/nicegui\" 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\"\u003enicegui\u003c/a\u003e from \u003ca href=\"https://github.com/zauberzeug\" 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\"\u003ezauberzeug\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCreate web-based user interfaces with Python. The nice way.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [nicegui](https://github.com/zauberzeug/nicegui) from [zauberzeug](https://github.com/zauberzeug).\n\nCreate web-based user interfaces with Python. The nice way.\n",
      "summary": "I'm impressed by nicegui from zauberzeug.",
      "date_published": "2025-10-12T23:12:28Z",
      "date_modified": "2025-10-12T23:12:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/3d-printed-dovetails-fanned-out/",
      "url": "https://waylonwalker.com/shots/3d-printed-dovetails-fanned-out/",
      "title": "3d Printed Dovetails Fanned Out",
      "content_html": "\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/4a90cbe1-9124-4a6b-baf9-1545afe3dd00.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e23a6965-a84b-4eb0-9d84-73ddc831949f.webp\" alt=\"PXL_20251013_011946949.webp\"/ data-glightbox=\"description: PXL_20251013_011946949.webp\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eExperimental slices of 3d printed dovetails laid out in a fan.  Each have sharpie notes written on them.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\n[![PXL_20251013_011946949.webp](https://dropper.waylonwalker.com/api/file/e23a6965-a84b-4eb0-9d84-73ddc831949f.webp)](https://dropper.waylonwalker.com/api/file/4a90cbe1-9124-4a6b-baf9-1545afe3dd00.webp)\n\n\u003e Experimental slices of 3d printed dovetails laid out in a fan.  Each have sharpie notes written on them.\n\n",
      "summary": "Experimental slices of 3d printed dovetails laid out in a fan. Each have sharpie notes written on them.",
      "image": "https://dropper.waylonwalker.com/api/file/e23a6965-a84b-4eb0-9d84-73ddc831949f.webp",
      "date_published": "2025-10-12T20:39:17Z",
      "date_modified": "2025-10-12T20:39:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/3d-printing-dovetails-experiment/",
      "url": "https://waylonwalker.com/3d-printing-dovetails-experiment/",
      "title": "3d Printing Dovetails Experiment",
      "content_html": "\u003cp\u003eI hit an issue with 3d printing oversized parts that I have not hit before.\nI’m working on some jigs for an upcoming woodworking project that will involve\na lot of repetition.  We want to utilize some dowel joinery and jigs for\nconsistency.  These parts will be up to 20in  in length this is much larger\nthan my print bed.\u003c/p\u003e\n\u003ch2 id=\"ive-fit-things-together-before\"\u003eI’ve fit things together before \u003ca href=\"#ive-fit-things-together-before\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere’s where I went wrong, I wasn’t really thinking through my previous\napplications.  They’ve all been slip fit, primarily print in place joints that\nneed to move.  My go to offset for print in place on my printer is 0.2mm,\nsometimes 0.1mm depending on the scale.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" class=\"glightbox-link\" aria-label=\"knife sharpener double hinge first try\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" type=\"video/mp4\"\u003eknife sharpener double hinge first try\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eA live hinged [[ knife-sharpener-double-hinge-first-try ]].\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg\" class=\"glightbox-link\" aria-label=\"a box of caps and a macropad\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg\" alt=\"a box of caps and a macropad\"/ data-glightbox=\"description: a box of caps and a macropad\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAnd in the hinges of [[ a-box-of-caps-and-a-macropad ]].\u003c/p\u003e\n\u003ch2 id=\"experimenting-for-feel\"\u003eExperimenting for feel \u003ca href=\"#experimenting-for-feel\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFitment like this is a lot dependent on the tolerences of your printer and the\nfeel you are going for.  I went to school as a mechanical engineer and theres a\nlot of science behind press fit joints, that’s not happening in my house on my\ndesktop printer.  Most of us don’t have that kind of ability to gauge our\noutputs so I’m doing like a cook in the kitchen and going for feel.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/4a90cbe1-9124-4a6b-baf9-1545afe3dd00.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e23a6965-a84b-4eb0-9d84-73ddc831949f.webp\" alt=\"PXL_20251013_011946949.webp\"/ data-glightbox=\"description: PXL_20251013_011946949.webp\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eHere are all of the experiements lined up.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"fillets\"\u003eFillets \u003ca href=\"#fillets\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI again, I feel like I should have known better.  3d printers generally have\n0.4mm nozzles, common sizes you can get 0.2mm, 0.4mm, 0.6mm, and 0.8mm.  This\nleaves us with the sharpest corner we can do at 0.2mm.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5533d56c-00e4-486d-b2a0-a994bbd1f1a4.webp\" class=\"glightbox-link\" aria-label=\"b49ea6a6-115b-44f8-99c0-d5f58f7c9940.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5533d56c-00e4-486d-b2a0-a994bbd1f1a4.webp\" alt=\"b49ea6a6-115b-44f8-99c0-d5f58f7c9940.webp\"/ data-glightbox=\"description: b49ea6a6-115b-44f8-99c0-d5f58f7c9940.webp\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eDiagram courtesy of gpt-5.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch3 id=\"potentially-overkill\"\u003ePotentially overkill \u003ca href=\"#potentially-overkill\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eIn order to make sure that the flat edges of the dovetails are what are making\ncontact and not corners binding I made the inside fillet 0.6mm and the outside\n0.4mm.  This 0.4mm radius (0.8mm diameter) is double my nozzle size, and will\ncause the printer to follow a smooth curve rather than start and stop and\npotentially overflow a bit.  This difference in fillet size will also leave a\nlittle room for error and allow the important flat faces to mate together.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ec3a9841-9b39-4180-96e4-613be79ee793.webp\" class=\"glightbox-link\" aria-label=\"fillets.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ec3a9841-9b39-4180-96e4-613be79ee793.webp\" alt=\"fillets.webp\"/ data-glightbox=\"description: fillets.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eHere are the test results after filleting the edges of the dovetails to\ncompensate for printer errors.\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eFillets\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eBefore Fillets\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/a289064c-960c-4f83-8b92-ec8524f51690.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3ed04466-6303-4e72-b292-0f446785c9cb.webp\" alt=\"PXL_20251013_014851451.webp\"/ data-glightbox=\"description: PXL_20251013_014851451.webp\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eAfter Fillets\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/ea3f4651-68b7-4aac-a00d-2f11db1f11a3.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/149a93d0-bce7-45df-845d-77c7a16c3218.webp\" alt=\"PXL_20251013_014909663.webp\"/ data-glightbox=\"description: PXL_20251013_014909663.webp\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003ch2 id=\"tldr-what-works-for-me\"\u003eTLDR What works for me \u003ca href=\"#tldr-what-works-for-me\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter all of this, turns out that common sense kinda just works here, 0mm\noffset works really well on my printer, and leaving room in the corners to keep\nthem from binding up helps a bit, but is probably unnecessary.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e0mm offset\u003c/li\u003e\n\u003cli\u003e0.6mm inside fillet\u003c/li\u003e\n\u003cli\u003e0.4mm outside fillet\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nI hit an issue with 3d printing oversized parts that I have not hit before.\nI'm working on some jigs for an upcoming woodworking project that will involve\na lot of repetition.  We want to utilize some dowel joinery and jigs for\nconsistency.  These parts will be up to 20in  in length this is much larger\nthan my print bed.\n\n## I've fit things together before\n\nHere's where I went wrong, I wasn't really thinking through my previous\napplications.  They've all been slip fit, primarily print in place joints that\nneed to move.  My go to offset for print in place on my printer is 0.2mm,\nsometimes 0.1mm depending on the scale.\n\n\n![knife sharpener double hinge first try](https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4)\n\nA live hinged [[ knife-sharpener-double-hinge-first-try ]].\n\n![a box of caps and a macropad](https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg)\n\nAnd in the hinges of [[ a-box-of-caps-and-a-macropad ]].\n\n## Experimenting for feel\n\nFitment like this is a lot dependent on the tolerences of your printer and the\nfeel you are going for.  I went to school as a mechanical engineer and theres a\nlot of science behind press fit joints, that's not happening in my house on my\ndesktop printer.  Most of us don't have that kind of ability to gauge our\noutputs so I'm doing like a cook in the kitchen and going for feel.\n\n[![PXL_20251013_011946949.webp](https://dropper.waylonwalker.com/api/file/e23a6965-a84b-4eb0-9d84-73ddc831949f.webp)](https://dropper.waylonwalker.com/api/file/4a90cbe1-9124-4a6b-baf9-1545afe3dd00.webp)\n\n\u003e Here are all of the experiements lined up.\n\n## Fillets\n\nI again, I feel like I should have known better.  3d printers generally have\n0.4mm nozzles, common sizes you can get 0.2mm, 0.4mm, 0.6mm, and 0.8mm.  This\nleaves us with the sharpest corner we can do at 0.2mm.\n\n\n![b49ea6a6-115b-44f8-99c0-d5f58f7c9940.webp](https://dropper.waylonwalker.com/api/file/5533d56c-00e4-486d-b2a0-a994bbd1f1a4.webp)\n\n\u003e Diagram courtesy of gpt-5.\n\n### Potentially overkill\n\nIn order to make sure that the flat edges of the dovetails are what are making\ncontact and not corners binding I made the inside fillet 0.6mm and the outside\n0.4mm.  This 0.4mm radius (0.8mm diameter) is double my nozzle size, and will\ncause the printer to follow a smooth curve rather than start and stop and\npotentially overflow a bit.  This difference in fillet size will also leave a\nlittle room for error and allow the important flat faces to mate together.\n\n![fillets.webp](https://dropper.waylonwalker.com/api/file/ec3a9841-9b39-4180-96e4-613be79ee793.webp)\n\nHere are the test results after filleting the edges of the dovetails to\ncompensate for printer errors.\n\n!!! vsplit Fillets\n\n    !!! vsplit Before Fillets\n\n        [![PXL_20251013_014851451.webp](https://dropper.waylonwalker.com/api/file/3ed04466-6303-4e72-b292-0f446785c9cb.webp)](https://dropper.waylonwalker.com/api/file/a289064c-960c-4f83-8b92-ec8524f51690.webp)\n\n    !!! vsplit After Fillets\n\n        [![PXL_20251013_014909663.webp](https://dropper.waylonwalker.com/api/file/149a93d0-bce7-45df-845d-77c7a16c3218.webp)](https://dropper.waylonwalker.com/api/file/ea3f4651-68b7-4aac-a00d-2f11db1f11a3.webp)\n\n\n## TLDR What works for me\n\nAfter all of this, turns out that common sense kinda just works here, 0mm\noffset works really well on my printer, and leaving room in the corners to keep\nthem from binding up helps a bit, but is probably unnecessary.\n\n* 0mm offset\n* 0.6mm inside fillet\n* 0.4mm outside fillet\n\n",
      "summary": "I hit an issue with 3d printing oversized parts that I have not hit before. I'm working on some jigs for an upcoming woodworking project that will involve a...",
      "date_published": "2025-10-12T20:34:35Z",
      "date_modified": "2025-10-12T20:34:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-851/",
      "url": "https://waylonwalker.com/thought-851/",
      "title": "💭 This Web Server Is 100% Solar Powered - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Gz56Cm-B6kg\" title=\"This Web Server Is 100% Solar Powered\" playlabel=\"Play: This Web Server Is 100% Solar Powered\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is super cool, thanks to Brodie for reading me this content as I do household chores.  \u003ca href=\"https://solar.lowtechmagazine.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/solar.lowtechmagazine.com.svg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/solar.lowtechmagazine.com.svg\" class=\"has-avatar  has-avatar-before\"\u003elowtech magazine\u003c/a\u003e is a website ran completely on solar power with only enough battery backup to cover most days.  Adding enough to cover all days would increase its carbon footprint and negate the carbon offset of the solar panels it runs on.\u003c/p\u003e\n\u003cp\u003eIt’s fascinating to see a web server running completely off grid in a close power system.  These interesting websites are fascinating keep em coming Brodie.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Gz56Cm-B6kg\" title=\"This Web Server Is 100% Solar Powered\" playlabel=\"Play: This Web Server Is 100% Solar Powered\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is super cool, thanks to Brodie for reading me this content as I do household chores.  [lowtech magazine](https://solar.lowtechmagazine.com/) is a website ran completely on solar power with only enough battery backup to cover most days.  Adding enough to cover all days would increase its carbon footprint and negate the carbon offset of the solar panels it runs on.  \n\nIt's fascinating to see a web server running completely off grid in a close power system.  These interesting websites are fascinating keep em coming Brodie.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=Gz56Cm-B6kg",
      "date_published": "2025-10-11T22:21:38Z",
      "date_modified": "2025-10-11T22:21:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-850/",
      "url": "https://waylonwalker.com/thought-850/",
      "title": "💭 2025 The Year Of The Linux Desktop - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"GQJZ96l-XQ4\" title=\"Apple Introduces The Year Of The Linux Desktop!\" playlabel=\"Play: Apple Introduces The Year Of The Linux Desktop!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThe Year of the Linux Desktop is a meme, every year is the year of the Linux desktop as it gains rounding errors of market share.  Outside of Linux nerds, developers that use servers on the regular, cheap asses reviving old hardware that is dead in the eyes of other OS’s, the average user wont even notice a difference with the right distro.  I ran bazzite with plasma for over a year, It would be super beginner friendly while allowing users customization on levels never seen on non-Linux machines.  Other than adobe, roblox, and EA games with easy anti-cheat most users probably aren’t going to run in to any issues.  They probably wont even notice at this point, which is where the meme comes in.  Why would anyone switch if its not noticeably different for the average user, they wont, until what is working for them stops working for them.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"GQJZ96l-XQ4\" title=\"Apple Introduces The Year Of The Linux Desktop!\" playlabel=\"Play: Apple Introduces The Year Of The Linux Desktop!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThe Year of the Linux Desktop is a meme, every year is the year of the Linux desktop as it gains rounding errors of market share.  Outside of Linux nerds, developers that use servers on the regular, cheap asses reviving old hardware that is dead in the eyes of other OS's, the average user wont even notice a difference with the right distro.  I ran bazzite with plasma for over a year, It would be super beginner friendly while allowing users customization on levels never seen on non-Linux machines.  Other than adobe, roblox, and EA games with easy anti-cheat most users probably aren't going to run in to any issues.  They probably wont even notice at this point, which is where the meme comes in.  Why would anyone switch if its not noticeably different for the average user, they wont, until what is working for them stops working for them.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=GQJZ96l-XQ4",
      "date_published": "2025-10-10T13:14:37Z",
      "date_modified": "2025-10-10T13:14:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/handle-jig-alignment-window/",
      "url": "https://waylonwalker.com/shots/handle-jig-alignment-window/",
      "title": "Handle Jig Alignment Window",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/10a83121-6c3f-4171-9c63-1bae742c88a2.jpg\" class=\"glightbox-link\" aria-label=\"handle jig alignment window\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/10a83121-6c3f-4171-9c63-1bae742c88a2.jpg\" alt=\"handle jig alignment window\"/ data-glightbox=\"description: handle jig alignment window\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHandle jig for theater boxes. The image shows the centerline lineup.  This jig came out with a handle a little bit too big, going to go with a smaller one for the real boxes.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![handle jig alignment window](https://dropper.waylonwalker.com/api/file/10a83121-6c3f-4171-9c63-1bae742c88a2.jpg)\n\n\u003e Handle jig for theater boxes. The image shows the centerline lineup.  This jig came out with a handle a little bit too big, going to go with a smaller one for the real boxes.\n\n",
      "summary": "Handle jig for theater boxes. The image shows the centerline lineup. This jig came out with a handle a little bit too big, going to go with a smaller one for the real boxes.",
      "image": "https://dropper.waylonwalker.com/api/file/0f7e7ab3-7bb3-4c68-87d5-1da83b6b994a.webp",
      "date_published": "2025-10-10T08:49:02Z",
      "date_modified": "2025-10-10T08:49:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/mordoria-unnamed_game_1_v2/",
      "url": "https://waylonwalker.com/mordoria-unnamed_game_1_v2/",
      "title": "⭐ Mordoria unnamed_game_1_v2",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/Mordoria/unnamed_game_1_v2\" 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\"\u003eunnamed_game_1_v2\u003c/a\u003e by \u003ca href=\"https://github.com/Mordoria\" 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\"\u003eMordoria\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe Release of Mordoria\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [unnamed_game_1_v2](https://github.com/Mordoria/unnamed_game_1_v2) by [Mordoria](https://github.com/Mordoria).\n\nThe Release of Mordoria\n",
      "summary": "Looking for inspiration? unnamed_1_v2 by Mordoria.",
      "date_published": "2025-10-09T12:57:37Z",
      "date_modified": "2025-10-09T12:57:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-849/",
      "url": "https://waylonwalker.com/thought-849/",
      "title": "💭 Litewind",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://litewindcss.com/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/litewindcss.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/litewindcss.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLitewind\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLitewind is Tailwind without the build step\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003elitewindcss.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a sick no-build version of tailwind.  I have a couple of projects that the build step of tailwind is cumbersome on, mostly because they are for non-js devs.  Some are for backend python devs, some are for folks that mostly want markdown with some styles.  This is a perfect no-build tailwind alternative.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://litewindcss.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLitewind\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLitewind is Tailwind without the build step\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003elitewindcss.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a sick no-build version of tailwind.  I have a couple of projects that the build step of tailwind is cumbersome on, mostly because they are for non-js devs.  Some are for backend python devs, some are for folks that mostly want markdown with some styles.  This is a perfect no-build tailwind alternative.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://litewindcss.com/",
      "date_published": "2025-10-05T01:12:20Z",
      "date_modified": "2025-10-05T01:12:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/python-extras-are-for-shipping/",
      "url": "https://waylonwalker.com/python-extras-are-for-shipping/",
      "title": "python extras are for shipping",
      "content_html": "\u003cp\u003ePython has two ways of adding optional dependencies to your projects\npyproject.toml file \u003ccode\u003edependency-groups\u003c/code\u003e and \u003ccode\u003eoptional-dependencies\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"dependency-groups\"\u003edependency-groups \u003ca href=\"#dependency-groups\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003efor development\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eDependency grooups are used when working on the project, they do not ship with\nthe project, users cannot select to install them with the project.  These are\nfor things like running tests, linting, or docs.  You might want to run these\nin ci, or keep your dev machines tight.  For the most part you can probably\nkeep these in \u003ccode\u003edev\u003c/code\u003e.  Depending on your team, fluency, and tolerance for slower\ninstalls extra packages.  Adding too many tight groups might make it hard for\nthe team to remember all the groups and which one to use and end up with them\nusing \u003ccode\u003e--all-groups\u003c/code\u003e anyways.\u003c/p\u003e\n\u003ch2 id=\"optional-dependencies\"\u003eoptional-dependencies \u003ca href=\"#optional-dependencies\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003efor users\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eOptional dependencies are for shipping.  These are for your users, not your\ndevelopment team.  This is used for dependencies that are clearly not needed\nfor all or main use cases.  It is annoying to use projects that you need to add\noptionals to just to use at all so use them a bit sparingly.\u003c/p\u003e\n\u003ch2 id=\"example-\u003ca href=\"/fastapi/\" class=\"glossary-term\" title=\"FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.\"\u003efastapi\u003c/a\u003e\"\u003eexample fastapi \u003ca href=\"#example-fastapi\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/fastapi/fastapi/blob/master/pyproject.toml\" 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\"\u003efastapi\u003c/a\u003e\nprovides a very simple example. \u003ccode\u003efastapi\u003c/code\u003e itself provides almost everything you\nneed with optional-dependencies for \u003ccode\u003estandard\u003c/code\u003e,\n\u003ccode\u003estandard-no-fastapi-cloud-cli\u003c/code\u003e, and \u003ccode\u003eall\u003c/code\u003e.  These primarily add support for\nuvicorn websockets and multipart forms.\u003c/p\u003e\n\u003ch2 id=\"example-pandas\"\u003eexample pandas \u003ca href=\"#example-pandas\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/blob/main/pyproject.toml\" 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\"\u003ePandas\u003c/a\u003e is a\nvery good example here.  As a data processing library there are a lot of\ndifferent sources for data that you might want to use, but you probably won’t\nneed most of them, and often don’t need them to \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\" data-preview=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\"\u003ejust\u003c/a\u003e get a \u003ccode\u003eDataFrame\u003c/code\u003e\ngoing.  They offer a long list of optional dependencies such as \u003ccode\u003epyarrow\u003c/code\u003e,\n\u003ccode\u003eaws\u003c/code\u003e, \u003ccode\u003egcp\u003c/code\u003e, \u003ccode\u003epostgresql\u003c/code\u003e and many more.\u003c/p\u003e\n\u003ch2 id=\"example-kedro-datasets\"\u003eexample kedro-datasets \u003ca href=\"#example-kedro-datasets\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVery similar to pandas \u003ccode\u003ekedro-datasets\u003c/code\u003e uses a similar pattern to pandas but at\na higher level.  A dataset is an abstraction of a datasource that get defined\nin the catalog, and primarily provide the framework with \u003ccode\u003eload\u003c/code\u003e and \u003ccode\u003esave\u003c/code\u003e\nmethods for datasets. There are many optionals for data providers like pandas,\nbut also many for each dataframe abstraction like \u003ccode\u003epandas\u003c/code\u003e, \u003ccode\u003epolars\u003c/code\u003e, \u003ccode\u003edask\u003c/code\u003e,\n\u003ccode\u003edatabricks\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/kedro-org/kedro-plugins/blob/main/kedro-datasets/pyproject.toml\" 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\"\u003ekedro-datasets\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"lets-build-a-package\"\u003elet’s build a package \u003ca href=\"#lets-build-a-package\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’s make a package called \u003ccode\u003elearn-uv\u003c/code\u003e that implements these dependency features.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir /tmp/learn-uv\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ecd\u003c/span\u003e /tmp/learn-uv\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv init --package\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add httpx\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add development dependencies\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --dev pytest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --group dev ipython\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add documentation dependencies to the docs group\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --group docs markata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add optional dependencies\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# these are dependencies that a user could install\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# python -m pip install \u0026#39;learn-uv[data-science]\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --optional data-science pandas\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add extra dependencies\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# this adds the jupyter extra from rich\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# similar to `python -m pip install \u0026#39;learn-uv[jupyter]\u0026#39;`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --extra jupyter rich\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis will result in the following pyproject.toml.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003eproject\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ename\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;learn-uv\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eversion\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;0.1.0\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edescription\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Add your description here\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ereadme\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;README.md\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eauthors\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"nx\"\u003ename\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Waylon S. Walker\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nx\"\u003eemail\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;hello@waylonwalker.com\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003erequires-python\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026gt;=3.13\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edependencies\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e# uv add httpx\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;httpx\u0026gt;=0.28.1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e# uv add --extra jupyter rich\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;rich[jupyter]\u0026gt;=14.1.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003eproject\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003escripts\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003elearn-uv\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;learn_uv:main\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003eproject\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eoptional-dependencies\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edata-science\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e# uv add --optional data-science pandas\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pandas\u0026gt;=2.3.3\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003ebuild-system\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003erequires\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;uv_build\u0026gt;=0.8.22,\u0026lt;0.9.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ebuild-backend\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;uv_build\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003edependency-groups\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edev\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e# uv add --group dev ipython\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;ipython\u0026gt;=9.6.0\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e# uv add --dev pytest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;pytest\u0026gt;=8.4.2\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edocs\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c\"\u003e# uv add --group docs markata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026gt;=0.9.1\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-the-project\"\u003eUsing the project \u003ca href=\"#using-the-project\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet’s start off with one common point of confusion.  \u003ccode\u003euv tool run\u003c/code\u003e or its alias\n\u003ccode\u003euvx\u003c/code\u003e does not install any dependencies or anything from the project.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tool run ipython\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e✅ ipython\u003c/li\u003e\n\u003cli\u003e❌ learn_uv\u003c/li\u003e\n\u003cli\u003e❌ httpx\u003c/li\u003e\n\u003cli\u003e❌ pytest\u003c/li\u003e\n\u003cli\u003e❌ markata\u003c/li\u003e\n\u003cli\u003e❌ pandas\u003c/li\u003e\n\u003cli\u003e❌ rich\u003c/li\u003e\n\u003cli\u003e❌ ipywidgets (from rich[jupyter])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsing \u003ccode\u003euv run\u003c/code\u003e is project aware, installs the dependencies from the\npyproject.toml.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run ipython\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e✅ ipython\u003c/li\u003e\n\u003cli\u003e✅ learn_uv\u003c/li\u003e\n\u003cli\u003e✅ httpx\u003c/li\u003e\n\u003cli\u003e✅ pytest\u003c/li\u003e\n\u003cli\u003e❌ markata\u003c/li\u003e\n\u003cli\u003e❌ pandas\u003c/li\u003e\n\u003cli\u003e✅ rich\u003c/li\u003e\n\u003cli\u003e✅ ipywidgets (from rich[jupyter])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run --group docs markata\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e✅ ipython\u003c/li\u003e\n\u003cli\u003e✅ learn_uv\u003c/li\u003e\n\u003cli\u003e✅ httpx\u003c/li\u003e\n\u003cli\u003e✅ pytest\u003c/li\u003e\n\u003cli\u003e✅ markata\u003c/li\u003e\n\u003cli\u003e❌ pandas\u003c/li\u003e\n\u003cli\u003e✅ rich\u003c/li\u003e\n\u003cli\u003e✅ ipywidgets (from rich[jupyter])\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInstalling the optional dependency extra \u003ccode\u003edata-science\u003c/code\u003e gives me \u003ccode\u003epandas\u003c/code\u003e in\nthis project.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run --extra data-science ipython\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e✅ ipython\u003c/li\u003e\n\u003cli\u003e✅ learn_uv\u003c/li\u003e\n\u003cli\u003e✅ httpx\u003c/li\u003e\n\u003cli\u003e✅ pytest\u003c/li\u003e\n\u003cli\u003e✅ markata\u003c/li\u003e\n\u003cli\u003e✅ pandas\u003c/li\u003e\n\u003cli\u003e✅ rich\u003c/li\u003e\n\u003cli\u003e✅ ipywidgets (from rich[jupyter])\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"everything\"\u003eeverything \u003ca href=\"#everything\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere are many combinations of include/exclude that you can use, check \u003ccode\u003euv run --help\u003c/code\u003e to see all of the options.  Here is the nuclear option to include\neverything.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run --all-groups --all-extras ipython\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"potential-uv-bug\"\u003ePotential \u003ccode\u003euv\u003c/code\u003e bug \u003ca href=\"#potential-uv-bug\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAt the time of writing once a dependency group is used it persists in the\n\u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e for the rest of the project.  This is not the case with\n\u003ccode\u003eextras\u003c/code\u003e it only includes the \u003ccode\u003eextras\u003c/code\u003e you ask for on each run.  The state is\nclean and consistent with \u003ccode\u003eextras\u003c/code\u003e, but \u003ccode\u003egroups\u003c/code\u003e depend on what you have ran\nbefore in the project.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ uv --version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv 0.8.22 \u003cspan class=\"o\"\u003e(\u003c/span\u003eade2bdbd2 2025-09-23\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eexample\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# install docs group\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv sync --group docs\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# docs dependencies are available\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run markata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# sync resets the environment\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv sync\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# docs dependencies are not available\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run markata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eerror: Failed to spawn: \u003cspan class=\"sb\"\u003e`\u003c/span\u003emarkata\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  Caused by: Permission denied \u003cspan class=\"o\"\u003e(\u003c/span\u003eos error 13\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nPython has two ways of adding optional dependencies to your projects\npyproject.toml file `dependency-groups` and `optional-dependencies`.\n\n## dependency-groups\n_for development_\n\nDependency grooups are used when working on the project, they do not ship with\nthe project, users cannot select to install them with the project.  These are\nfor things like running tests, linting, or docs.  You might want to run these\nin ci, or keep your dev machines tight.  For the most part you can probably\nkeep these in `dev`.  Depending on your team, fluency, and tolerance for slower\ninstalls extra packages.  Adding too many tight groups might make it hard for\nthe team to remember all the groups and which one to use and end up with them\nusing `--all-groups` anyways.\n\n## optional-dependencies\n_for users_\n\nOptional dependencies are for shipping.  These are for your users, not your\ndevelopment team.  This is used for dependencies that are clearly not needed\nfor all or main use cases.  It is annoying to use projects that you need to add\noptionals to just to use at all so use them a bit sparingly.\n\n## example fastapi\n\n[fastapi](https://github.com/fastapi/fastapi/blob/master/pyproject.toml)\nprovides a very simple example. `fastapi` itself provides almost everything you\nneed with optional-dependencies for `standard`,\n`standard-no-fastapi-cloud-cli`, and `all`.  These primarily add support for\nuvicorn websockets and multipart forms.\n\n## example pandas\n\n[Pandas](https://github.com/pandas-dev/pandas/blob/main/pyproject.toml) is a\nvery good example here.  As a data processing library there are a lot of\ndifferent sources for data that you might want to use, but you probably won't\nneed most of them, and often don't need them to \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\"\u003ejust\u003c/a\u003e get a `DataFrame`\ngoing.  They offer a long list of optional dependencies such as `pyarrow`,\n`aws`, `gcp`, `postgresql` and many more.\n\n## example kedro-datasets\n\nVery similar to pandas `kedro-datasets` uses a similar pattern to pandas but at\na higher level.  A dataset is an abstraction of a datasource that get defined\nin the catalog, and primarily provide the framework with `load` and `save`\nmethods for datasets. There are many optionals for data providers like pandas,\nbut also many for each dataframe abstraction like `pandas`, `polars`, `dask`,\n`databricks`.\n\n[kedro-datasets](https://github.com/kedro-org/kedro-plugins/blob/main/kedro-datasets/pyproject.toml)\n\n## let's build a package\n\nLet's make a package called `learn-uv` that implements these dependency features.\n\n``` bash\nmkdir /tmp/learn-uv\ncd /tmp/learn-uv\nuv init --package\nuv add httpx\n# add development dependencies\nuv add --dev pytest\nuv add --group dev ipython\n# add documentation dependencies to the docs group\nuv add --group docs markata\n\n# add optional dependencies\n# these are dependencies that a user could install\n# python -m pip install 'learn-uv[data-science]'\nuv add --optional data-science pandas\n\n# add extra dependencies\n# this adds the jupyter extra from rich\n# similar to `python -m pip install 'learn-uv[jupyter]'`\nuv add --extra jupyter rich\n```\n\nThis will result in the following pyproject.toml.\n\n``` pyproject.toml\n[project]\nname = \"learn-uv\"\nversion = \"0.1.0\"\ndescription = \"Add your description here\"\nreadme = \"README.md\"\nauthors = [\n    { name = \"Waylon S. Walker\", email = \"hello@waylonwalker.com\" }\n]\nrequires-python = \"\u003e=3.13\"\ndependencies = [\n    # uv add httpx\n    \"httpx\u003e=0.28.1\",\n    # uv add --extra jupyter rich\n    \"rich[jupyter]\u003e=14.1.0\",\n]\n\n[project.scripts]\nlearn-uv = \"learn_uv:main\"\n\n[project.optional-dependencies]\ndata-science = [\n    # uv add --optional data-science pandas\n    \"pandas\u003e=2.3.3\",\n]\n\n[build-system]\nrequires = [\"uv_build\u003e=0.8.22,\u003c0.9.0\"]\nbuild-backend = \"uv_build\"\n\n[dependency-groups]\ndev = [\n    # uv add --group dev ipython\n    \"ipython\u003e=9.6.0\",\n    # uv add --dev pytest\n    \"pytest\u003e=8.4.2\",\n]\ndocs = [\n    # uv add --group docs markata\n    \"markata\u003e=0.9.1\",\n]\n```\n\n## Using the project\n\nLet's start off with one common point of confusion.  `uv tool run` or its alias\n`uvx` does not install any dependencies or anything from the project.\n\n``` bash\nuv tool run ipython\n```\n* ✅ ipython\n* ❌ learn_uv\n* ❌ httpx\n* ❌ pytest\n* ❌ markata\n* ❌ pandas\n* ❌ rich\n* ❌ ipywidgets (from rich[jupyter])\n\nUsing `uv run` is project aware, installs the dependencies from the\npyproject.toml.\n\n``` bash\nuv run ipython\n```\n\n* ✅ ipython\n* ✅ learn_uv\n* ✅ httpx\n* ✅ pytest\n* ❌ markata\n* ❌ pandas\n* ✅ rich\n* ✅ ipywidgets (from rich[jupyter])\n\n``` bash\nuv run --group docs markata\n```\n\n* ✅ ipython\n* ✅ learn_uv\n* ✅ httpx\n* ✅ pytest\n* ✅ markata\n* ❌ pandas\n* ✅ rich\n* ✅ ipywidgets (from rich[jupyter])\n\n\nInstalling the optional dependency extra `data-science` gives me `pandas` in\nthis project.\n\n``` bash\nuv run --extra data-science ipython\n```\n* ✅ ipython\n* ✅ learn_uv\n* ✅ httpx\n* ✅ pytest\n* ✅ markata\n* ✅ pandas\n* ✅ rich\n* ✅ ipywidgets (from rich[jupyter])\n\n## everything\n\nThere are many combinations of include/exclude that you can use, check `uv run\n--help` to see all of the options.  Here is the nuclear option to include\neverything.\n\n``` bash\nuv run --all-groups --all-extras ipython\n```\n\n## Potential `uv` bug\n\nAt the time of writing once a dependency group is used it persists in the\nvirtual environment for the rest of the project.  This is not the case with\n`extras` it only includes the `extras` you ask for on each run.  The state is\nclean and consistent with `extras`, but `groups` depend on what you have ran\nbefore in the project.\n\n``` bash\n❯ uv --version\nuv 0.8.22 (ade2bdbd2 2025-09-23)\n```\n\nexample\n\n``` bash\n# install docs group\nuv sync --group docs\n# docs dependencies are available\nuv run markata\n# sync resets the environment\nuv sync\n# docs dependencies are not available\nuv run markata\nerror: Failed to spawn: `markata`\n  Caused by: Permission denied (os error 13)\n```\n",
      "summary": "Python has two ways of adding optional dependencies to your projects pyproject.toml file and .",
      "date_published": "2025-10-03T20:18:23Z",
      "date_modified": "2025-10-03T20:18:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/sister-splinter/",
      "url": "https://waylonwalker.com/shots/sister-splinter/",
      "title": "Sister Splinter",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/e4d2843c-efeb-4965-b627-3e834db6378a.mp4\" class=\"glightbox-link\" aria-label=\"Sister Splinter\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/e4d2843c-efeb-4965-b627-3e834db6378a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/e4d2843c-efeb-4965-b627-3e834db6378a.mp4\" type=\"video/mp4\"\u003eSister Splinter\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSister Splinter\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Sister Splinter](https://dropper.waylonwalker.com/file/e4d2843c-efeb-4965-b627-3e834db6378a.mp4)\n\n\u003e Sister Splinter\n",
      "summary": "Sister Splinter",
      "image": "https://dropper.waylonwalker.com/file/e4d2843c-efeb-4965-b627-3e834db6378a.mp4",
      "date_published": "2025-10-03T18:04:34Z",
      "date_modified": "2025-10-03T18:04:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cling-grip-bind/",
      "url": "https://waylonwalker.com/shots/cling-grip-bind/",
      "title": "Cling Grip Bind",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/fa7bd8cb-7311-446f-82eb-9b31cd5b2101.mp4\" class=\"glightbox-link\" aria-label=\"Cling Grip Bind\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/fa7bd8cb-7311-446f-82eb-9b31cd5b2101.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/fa7bd8cb-7311-446f-82eb-9b31cd5b2101.mp4\" type=\"video/mp4\"\u003eCling Grip Bind\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCling Grip Bind\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Cling Grip Bind](https://dropper.waylonwalker.com/file/fa7bd8cb-7311-446f-82eb-9b31cd5b2101.mp4)\n\n\u003e Cling Grip Bind\n",
      "summary": "Cling Grip Bind",
      "image": "https://dropper.waylonwalker.com/file/fa7bd8cb-7311-446f-82eb-9b31cd5b2101.mp4",
      "date_published": "2025-10-03T18:02:33Z",
      "date_modified": "2025-10-03T18:02:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-848/",
      "url": "https://waylonwalker.com/thought-848/",
      "title": "💭 python 3.14 highlights! - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"-Z-BDux-TRk\" title=\"python 3.14 highlights!\" playlabel=\"Play: python 3.14 highlights!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eanthony has some of the best python highlight videos each year.  This might be a good sign, but each year there seems to be less and less that I am chomping at the bit to get to.  I thought the remote debugger looked every interesting, his use case for \u003ccode\u003ebabi\u003c/code\u003e seemed very interesting.  I wonder what textual would look like built in a 3.14 world, would it still have built its own debugger/console?\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tool run --python\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.14 babi\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWithout a process flag you need sudo permissions to attach a pdb debugger similar to gdb.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eps -ef \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep babi\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tool run --python\u003cspan class=\"o\"\u003e=\u003c/span\u003e3.14 python -m pdb -p8605\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b5e1a34d-c198-440a-ab30-4498bfa6962a.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-10-03T01-11-02-918Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b5e1a34d-c198-440a-ab30-4498bfa6962a.png\" alt=\"screenshot-2025-10-03T01-11-02-918Z.png\"/ data-glightbox=\"description: screenshot-2025-10-03T01-11-02-918Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"-Z-BDux-TRk\" title=\"python 3.14 highlights!\" playlabel=\"Play: python 3.14 highlights!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nanthony has some of the best python highlight videos each year.  This might be a good sign, but each year there seems to be less and less that I am chomping at the bit to get to.  I thought the remote debugger looked every interesting, his use case for `babi` seemed very interesting.  I wonder what textual would look like built in a 3.14 world, would it still have built its own debugger/console?\n\n``` bash\nuv tool run --python=3.14 babi\n```\n\nWithout a process flag you need sudo permissions to attach a pdb debugger similar to gdb.\n\n``` bash\nps -ef | grep babi\nuv tool run --python=3.14 python -m pdb -p8605\n```\n\n![screenshot-2025-10-03T01-11-02-918Z.png](https://dropper.waylonwalker.com/api/file/b5e1a34d-c198-440a-ab30-4498bfa6962a.png)\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=-Z-BDux-TRk",
      "date_published": "2025-10-03T01:04:57Z",
      "date_modified": "2025-10-03T01:04:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-847/",
      "url": "https://waylonwalker.com/thought-847/",
      "title": "💭 This $15 Fingerboard Mold from Amazon SHOCKED me!! - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"GAudJhMrqwo\" title=\"I bought a $15 Fingerboard Mold from Amazon! Is it Worth it?\" playlabel=\"Play: I bought a $15 Fingerboard Mold from Amazon! Is it Worth it?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a pretty sick result, good fingerboards are stupid expensive.  This looks like a fun way to make some good ones on the cheap.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"GAudJhMrqwo\" title=\"I bought a $15 Fingerboard Mold from Amazon! Is it Worth it?\" playlabel=\"Play: I bought a $15 Fingerboard Mold from Amazon! Is it Worth it?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is a pretty sick result, good fingerboards are stupid expensive.  This looks like a fun way to make some good ones on the cheap.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=GAudJhMrqwo",
      "date_published": "2025-10-03T00:59:29Z",
      "date_modified": "2025-10-03T00:59:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "fingerboard",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/kraft-coordinates/",
      "url": "https://waylonwalker.com/kraft-coordinates/",
      "title": "Kraft-Coordinates",
      "content_html": "\u003cp\u003eHandy reference for coordinates in the \u003ca href=\"/kraft/\" class=\"wikilink\" data-title=\"kraft\" data-description=\"Kraft is the family gaming server that we started early 2025.\" data-date=\"2025-06-01\" data-preview=\"Kraft is the family gaming server that we started early 2025.\"\u003ekraft\u003c/a\u003e world.\u003c/p\u003e\n\u003ch2 id=\"home\"\u003eHome \u003ca href=\"#home\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOverworld:-208 71 -291\nNether:-26 9 -36\u003c/p\u003e\n\u003ch2 id=\"ocean-monument\"\u003eOcean Monument \u003ca href=\"#ocean-monument\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOverworld: 209 62 -752\nNether:26 1 -94\u003c/p\u003e\n",
      "content_text": "\nHandy reference for coordinates in the \u003ca href=\"/kraft/\" class=\"wikilink\" data-title=\"kraft\" data-description=\"Kraft is the family gaming server that we started early 2025.\" data-date=\"2025-06-01\"\u003ekraft\u003c/a\u003e world.\n\n## Home\n\nOverworld:-208 71 -291\nNether:-26 9 -36\n\n## Ocean Monument\n\nOverworld: 209 62 -752\nNether:26 1 -94\n\n\n",
      "summary": "Handy reference for coordinates in the kraft world.",
      "date_published": "2025-10-02T16:52:02Z",
      "date_modified": "2025-10-02T16:52:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-846/",
      "url": "https://waylonwalker.com/thought-846/",
      "title": "💭 PEP 735 – Dependency Groups in pyproject.toml | peps.python.org",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://peps.python.org/pep-0735/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://peps.python.org/_static/og-image.png\" alt=\"PEP 735 – Dependency Groups in pyproject.toml | peps.python.org — This PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the project.\" loading=\"lazy\"/ data-glightbox=\"description: PEP 735 – Dependency Groups in pyproject.toml | peps.python.org — This PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the project.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePEP 735 – Dependency Groups in pyproject.toml | peps.python.org\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the project.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePython Enhancement Proposals (PEPs) · peps.python.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ePEP 735 describes dependency groups as sets of optional dependencies that are not shipped with the package but intended for development purposes.\u003c/p\u003e\n\u003cp\u003eThe PEP includes an example for groups that include test, docs, typing, and a combo typing-test.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003edependency-groups\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etest\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pytest\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;coverage\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edocs\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;sphinx\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;sphinx-rtd-theme\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etyping\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;mypy\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;types-requests\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etyping-test\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[{\u003c/span\u003e\u003cspan class=\"nx\"\u003einclude-group\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;typing\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"nx\"\u003einclude-group\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;test\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e},\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;useful-types\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis is implemented in uv and can be used by several of their commands.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv sync --group \u003cspan class=\"nb\"\u003etest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv run --group \u003cspan class=\"nb\"\u003etest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --group \u003cspan class=\"nb\"\u003etest\u003c/span\u003e pytest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv remove --group \u003cspan class=\"nb\"\u003etest\u003c/span\u003e pytest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv \u003cspan class=\"nb\"\u003eexport\u003c/span\u003e --group \u003cspan class=\"nb\"\u003etest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv tree --group \u003cspan class=\"nb\"\u003etest\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"dependency-groups-are-not-extras\"\u003eDependency Groups are not Extras \u003ca href=\"#dependency-groups-are-not-extras\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe docs describe extras as being intended to ship with the application and dependency groups intended for development.  The spec allows both to exist with the same name, but care should be taken as tools may have different implementations.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTools MAY choose to provide the same interfaces for installing Dependency Groups as they do for installing extras.\u003c/p\u003e\n\u003cp\u003eNote that this specification does not forbid having an extra whose name matches a Dependency Group.\u003c/p\u003e\n\u003cp\u003eUsers are advised to avoid creating Dependency Groups whose names match extras. Tools MAY treat such matching as an error.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://peps.python.org/pep-0735/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://peps.python.org/_static/og-image.png\" alt=\"PEP 735 – Dependency Groups in pyproject.toml | peps.python.org — This PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the project.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePEP 735 – Dependency Groups in pyproject.toml | peps.python.org\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis PEP specifies a mechanism for storing package requirements in pyproject.toml files such that they are not included in any built distribution of the project.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePython Enhancement Proposals (PEPs) \u0026middot; peps.python.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nPEP 735 describes dependency groups as sets of optional dependencies that are not shipped with the package but intended for development purposes.\n\nThe PEP includes an example for groups that include test, docs, typing, and a combo typing-test.\n\n``` toml\n[dependency-groups]\ntest = [\"pytest\", \"coverage\"]\ndocs = [\"sphinx\", \"sphinx-rtd-theme\"]\ntyping = [\"mypy\", \"types-requests\"]\ntyping-test = [{include-group = \"typing\"}, {include-group = \"test\"}, \"useful-types\"]\n```\n\nThis is implemented in uv and can be used by several of their commands.\n\n``` bash\nuv sync --group test\nuv run --group test\nuv add --group test pytest\nuv remove --group test pytest\nuv export --group test\nuv tree --group test\n```\n\n## Dependency Groups are not Extras\n\nThe docs describe extras as being intended to ship with the application and dependency groups intended for development.  The spec allows both to exist with the same name, but care should be taken as tools may have different implementations.\n\n\u003e  Tools MAY choose to provide the same interfaces for installing Dependency Groups as they do for installing extras.\n\u003e\n\u003e Note that this specification does not forbid having an extra whose name matches a Dependency Group.\n\u003e\n\u003e Users are advised to avoid creating Dependency Groups whose names match extras. Tools MAY treat such matching as an error.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://peps.python.org/pep-0735/",
      "date_published": "2025-10-01T16:25:57Z",
      "date_modified": "2025-10-01T16:25:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-845/",
      "url": "https://waylonwalker.com/thought-845/",
      "title": "💭 Running Software on Software You’ve Never Run",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/run-software-on-software-youve-never-run/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRunning Software on Software You’ve Never Run\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eRunning software applications in production today is crazy.  One point release opens up for supply chain attacks.  What’s crazier is not running your production applications without a lock file, potentially running dependencies you’ve never ran before for the first time in prod.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/run-software-on-software-youve-never-run/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRunning Software on Software You’ve Never Run\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nRunning software applications in production today is crazy.  One point release opens up for supply chain attacks.  What's crazier is not running your production applications without a lock file, potentially running dependencies you've never ran before for the first time in prod.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/2025/run-software-on-software-youve-never-run/",
      "date_published": "2025-09-29T18:54:45Z",
      "date_modified": "2025-09-29T18:54:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-844/",
      "url": "https://waylonwalker.com/thought-844/",
      "title": "💭 Using Litestream to Restore My Database for Easy Development",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/using-litestream-to-restore-my-database-for-easy-development/#Update\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20250807213014_2a14556e.png\" alt=\"Using Litestream to Restore My Database for Easy Development | Nic Payne — Litestream see [[using-litestream-to-backup-quadtasks-sqlite-db]] for how I setup litestream replication for [[quadtask]] I have the entrypoint to my app contai\" loading=\"lazy\"/ data-glightbox=\"description: Using Litestream to Restore My Database for Easy Development | Nic Payne — Litestream see [[using-litestream-to-backup-quadtasks-sqlite-db]] for how I setup litestream replication for [[quadtask]] I have the entrypoint to my app contai\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eUsing Litestream to Restore My Database for Easy Development | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLitestream see [[using-litestream-to-backup-quadtasks-sqlite-db]] for how I setup litestream replication for [[quadtask]] I have the entrypoint to my app contai\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI really like how well the local dev is setup to run off of production data here.  I’ll use this as a reminder that I need to set up lite stream on a few of my projects that it’s missing from and include a nice sync prod data \u003ca href=\"/tags/justfile/\" class=\"wikilink\" data-title=\"Posts tagged: justfile\" data-description=\"All posts with the tag \u0026#34;justfile\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;justfile\u0026#34;\"\u003ePosts tagged: justfile\u003c/a\u003e recipe.\u003c/p\u003e\n\u003cp\u003eLitestreams interface always throws me for a loop.  It works fantastic,  but the global config stored in /etc and some of the commands break my brain.  It’s not you it’s me.\u003c/p\u003e\n\u003cp\u003eUsing real data when you can is goated.  Fake data is so often a perfect example of what someone thinks the backend should look like and does not include things that users actually do, running pipelines for days, or setting titles to paragraphs worth of text.  Obviously this is not possible everywhere and the more sensitive your data the harder that process becomes.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/using-litestream-to-restore-my-database-for-easy-development/#Update\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20250807213014_2a14556e.png\" alt=\"Using Litestream to Restore My Database for Easy Development | Nic Payne — Litestream see [[using-litestream-to-backup-quadtasks-sqlite-db]] for how I setup litestream replication for [[quadtask]] I have the entrypoint to my app contai\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eUsing Litestream to Restore My Database for Easy Development | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLitestream see [[using-litestream-to-backup-quadtasks-sqlite-db]] for how I setup litestream replication for [[quadtask]] I have the entrypoint to my app contai\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI really like how well the local dev is setup to run off of production data here.  I'll use this as a reminder that I need to set up lite stream on a few of my projects that it's missing from and include a nice sync prod data \u003ca href=\"/tags/justfile/\" class=\"wikilink\" data-title=\"Posts tagged: justfile\" data-description=\"All posts with the tag \u0026#34;justfile\u0026#34;\"\u003ePosts tagged: justfile\u003c/a\u003e recipe.\n\nLitestreams interface always throws me for a loop.  It works fantastic,  but the global config stored in /etc and some of the commands break my brain.  It's not you it's me.\n\nUsing real data when you can is goated.  Fake data is so often a perfect example of what someone thinks the backend should look like and does not include things that users actually do, running pipelines for days, or setting titles to paragraphs worth of text.  Obviously this is not possible everywhere and the more sensitive your data the harder that process becomes.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/using-litestream-to-restore-my-database-for-easy-development/#Update",
      "date_published": "2025-09-29T18:49:12Z",
      "date_modified": "2025-09-29T18:49:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "database",
        "sqlite",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-843/",
      "url": "https://waylonwalker.com/thought-843/",
      "title": "💭 TIL: Loading .env files with uv run",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daniel.feldroy.com/posts/til-2025-09-env-files-with-uv-run\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://f004.backblazeb2.com/file/daniel-feldroy-com/public/logos/til-1.png\" alt=\"TIL: Loading .env files with uv run — Replacing python-dotenv with uv\" loading=\"lazy\"/ data-glightbox=\"description: TIL: Loading .env files with uv run — Replacing python-dotenv with uv\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTIL: Loading .env files with uv run\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReplacing python-dotenv with uv\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehttps://daniel.feldroy.com · daniel.feldroy.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI smell a dependency to \u003ccode\u003epython-dotenv\u003c/code\u003e dying in my workflow.  I originally read the title of the post and thought, “I know how to manage .env and almost skipped it”.  I’m leaning more and more on \u003ccode\u003euv run\u003c/code\u003e these days, so this should \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\" data-preview=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\"\u003ejust\u003c/a\u003e go in my [[ just file ]] to make it easy to run.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daniel.feldroy.com/posts/til-2025-09-env-files-with-uv-run\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://f004.backblazeb2.com/file/daniel-feldroy-com/public/logos/til-1.png\" alt=\"TIL: Loading .env files with uv run — Replacing python-dotenv with uv\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTIL: Loading .env files with uv run\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReplacing python-dotenv with uv\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehttps://daniel.feldroy.com \u0026middot; daniel.feldroy.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI smell a dependency to `python-dotenv` dying in my workflow.  I originally read the title of the post and thought, \"I know how to manage .env and almost skipped it\".  I'm leaning more and more on `uv run` these days, so this should \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\"\u003ejust\u003c/a\u003e go in my [[ just file ]] to make it easy to run.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://daniel.feldroy.com/posts/til-2025-09-env-files-with-uv-run",
      "date_published": "2025-09-29T18:42:01Z",
      "date_modified": "2025-09-29T18:42:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/folke-sidekick-nvim/",
      "url": "https://waylonwalker.com/folke-sidekick-nvim/",
      "title": "⭐ folke sidekick.nvim",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/folke/sidekick.nvim\" 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\"\u003esidekick.nvim\u003c/a\u003e by \u003ca href=\"https://github.com/folke\" 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\"\u003efolke\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eYour Neovim AI sidekick\u003c/p\u003e\n",
      "content_text": "\nCheck out [sidekick.nvim](https://github.com/folke/sidekick.nvim) by [folke](https://github.com/folke). It's a well-crafted project with great potential.\n\nYour Neovim AI sidekick\n",
      "summary": "Check out sidekick.nvim by folke. It's a well-crafted project with great potential.",
      "date_published": "2025-09-29T16:14:21Z",
      "date_modified": "2025-09-29T16:14:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/jfernandez-mdserve/",
      "url": "https://waylonwalker.com/jfernandez-mdserve/",
      "title": "⭐ jfernandez mdserve",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/jfernandez/mdserve\" 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\"\u003emdserve\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/jfernandez\" 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\"\u003ejfernandez\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eFast markdown preview server with live reload and theme support.\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [mdserve](https://github.com/jfernandez/mdserve), an amazing project by [jfernandez](https://github.com/jfernandez). It's worth exploring!\n\nFast markdown preview server with live reload and theme support.\n",
      "summary": "I'm really excited about mdserve, an amazing project by jfernandez. It's worth exploring!",
      "date_published": "2025-09-28T13:34:12Z",
      "date_modified": "2025-09-28T13:34:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-842/",
      "url": "https://waylonwalker.com/thought-842/",
      "title": "💭 A quote from Dan Abramov",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Sep/27/dan-abramov/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from Dan Abramov\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eConceptually, Mastodon is a bunch of copies of the same webapp emailing each other. There is no realtime global aggregation across the network so it can only offer a fragmented …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting catch from the HN discussion over his \u003ca href=\"https://overreacted.io/open-social/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/overreacted.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/overreacted.io.png\" class=\"has-avatar  has-avatar-before\"\u003earticle\u003c/a\u003e that came out yestereday.  I scanned it yesterday and it has some really fascinating diagrams showing different phases of the web being open, to being siloed, to somewhere that we are trying to make it easy to publish, and retain ownership.  I don’t know enough about bluesky, but the core is build on the AT protocol, you can \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself host\u003c/a\u003e your own instance, you can build different front ends for it.  So rather than having siloed instagram, FB, twitter, there are clones of those platforms that read the same data from everyones data, that they have the option of self hosting.\u003c/p\u003e\n\u003cp\u003eI like this distinction between Mastadon here.  Mastadon can also be self host, but its data aggregation is decentralized, so each instance is fragmented and cannot have a complete view of the data.  The way that the ATproto does its aggregation is quite fascinating and feels right for an open social platform.  I’m probably missing something, but if you are posting to one of these platfoms publically, why not have the data available to all of them, if you don’t want it shared it probably belongs somewhere more private anyways and there are platforms for that.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Sep/27/dan-abramov/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from Dan Abramov\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eConceptually, Mastodon is a bunch of copies of the same webapp emailing each other. There is no realtime global aggregation across the network so it can only offer a fragmented …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting catch from the HN discussion over his [article](https://overreacted.io/open-social/) that came out yestereday.  I scanned it yesterday and it has some really fascinating diagrams showing different phases of the web being open, to being siloed, to somewhere that we are trying to make it easy to publish, and retain ownership.  I don't know enough about bluesky, but the core is build on the AT protocol, you can self host your own instance, you can build different front ends for it.  So rather than having siloed instagram, FB, twitter, there are clones of those platforms that read the same data from everyones data, that they have the option of self hosting.  \n\nI like this distinction between Mastadon here.  Mastadon can also be self host, but its data aggregation is decentralized, so each instance is fragmented and cannot have a complete view of the data.  The way that the ATproto does its aggregation is quite fascinating and feels right for an open social platform.  I'm probably missing something, but if you are posting to one of these platfoms publically, why not have the data available to all of them, if you don't want it shared it probably belongs somewhere more private anyways and there are platforms for that.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Sep/27/dan-abramov/#atom-everything",
      "date_published": "2025-09-27T16:11:23Z",
      "date_modified": "2025-09-27T16:11:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "social",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/wanderers-crest-bind/",
      "url": "https://waylonwalker.com/shots/wanderers-crest-bind/",
      "title": "Wanderers Crest Bind",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/320d1bf2-4e55-44b7-b352-dc898a5313c7.mp4\" class=\"glightbox-link\" aria-label=\"Wanderers Crest Bind\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/320d1bf2-4e55-44b7-b352-dc898a5313c7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/320d1bf2-4e55-44b7-b352-dc898a5313c7.mp4\" type=\"video/mp4\"\u003eWanderers Crest Bind\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWanderers Crest Bind\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Wanderers Crest Bind](https://dropper.waylonwalker.com/file/320d1bf2-4e55-44b7-b352-dc898a5313c7.mp4)\n\n\u003e Wanderers Crest Bind\n",
      "summary": "Wanderers Crest Bind",
      "image": "https://dropper.waylonwalker.com/file/320d1bf2-4e55-44b7-b352-dc898a5313c7.mp4",
      "date_published": "2025-09-27T10:46:39Z",
      "date_modified": "2025-09-27T10:46:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/reapers-crest-gangfight/",
      "url": "https://waylonwalker.com/shots/reapers-crest-gangfight/",
      "title": "Reapers Crest Gangfight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/7f055638-af55-4c35-81c5-5a34e7a1428b.mp4\" class=\"glightbox-link\" aria-label=\"Reapers Crest Gangfight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/7f055638-af55-4c35-81c5-5a34e7a1428b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/7f055638-af55-4c35-81c5-5a34e7a1428b.mp4\" type=\"video/mp4\"\u003eReapers Crest Gangfight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eReapers Crest Gangfight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Reapers Crest Gangfight](https://dropper.waylonwalker.com/file/7f055638-af55-4c35-81c5-5a34e7a1428b.mp4)\n\n\u003e Reapers Crest Gangfight\n",
      "summary": "Reapers Crest Gangfight",
      "image": "https://dropper.waylonwalker.com/file/7f055638-af55-4c35-81c5-5a34e7a1428b.mp4",
      "date_published": "2025-09-27T10:45:25Z",
      "date_modified": "2025-09-27T10:45:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/violent-flintbeetle-2/",
      "url": "https://waylonwalker.com/shots/violent-flintbeetle-2/",
      "title": "Violent Flintbeetle 2",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/861803a9-f97f-417e-b0e3-50618396ed1d.mp4\" class=\"glightbox-link\" aria-label=\"Violent Flintbeetle 2\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/861803a9-f97f-417e-b0e3-50618396ed1d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/861803a9-f97f-417e-b0e3-50618396ed1d.mp4\" type=\"video/mp4\"\u003eViolent Flintbeetle 2\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eViolent Flintbeetle 2\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Violent Flintbeetle 2](https://dropper.waylonwalker.com/file/861803a9-f97f-417e-b0e3-50618396ed1d.mp4)\n\n\u003e Violent Flintbeetle 2\n",
      "summary": "Violent Flintbeetle 2",
      "image": "https://dropper.waylonwalker.com/file/861803a9-f97f-417e-b0e3-50618396ed1d.mp4",
      "date_published": "2025-09-27T10:38:25Z",
      "date_modified": "2025-09-27T10:38:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/violent-flintbeetle-granted/",
      "url": "https://waylonwalker.com/shots/violent-flintbeetle-granted/",
      "title": "Violent Flintbeetle Granted",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/bf0a8d2f-dee8-4d46-9509-99d2ad2eb524.mp4\" class=\"glightbox-link\" aria-label=\"Violent Flintbeetle Granted\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/bf0a8d2f-dee8-4d46-9509-99d2ad2eb524.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/bf0a8d2f-dee8-4d46-9509-99d2ad2eb524.mp4\" type=\"video/mp4\"\u003eViolent Flintbeetle Granted\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eViolent Flintbeetle Granted\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Violent Flintbeetle Granted](https://dropper.waylonwalker.com/file/bf0a8d2f-dee8-4d46-9509-99d2ad2eb524.mp4)\n\n\u003e Violent Flintbeetle Granted\n",
      "summary": "Violent Flintbeetle Granted",
      "image": "https://dropper.waylonwalker.com/file/bf0a8d2f-dee8-4d46-9509-99d2ad2eb524.mp4",
      "date_published": "2025-09-27T10:36:16Z",
      "date_modified": "2025-09-27T10:36:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/violent-flintbeetle-3/",
      "url": "https://waylonwalker.com/shots/violent-flintbeetle-3/",
      "title": "Violent Flintbeetle 3",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/4dc2bfb2-b742-4c7d-a7fb-30c5b8e7b6c3.mp4\" class=\"glightbox-link\" aria-label=\"Violent Flintbeetle 3\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/4dc2bfb2-b742-4c7d-a7fb-30c5b8e7b6c3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/4dc2bfb2-b742-4c7d-a7fb-30c5b8e7b6c3.mp4\" type=\"video/mp4\"\u003eViolent Flintbeetle 3\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eViolent Flintbeetle 3\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Violent Flintbeetle 3](https://dropper.waylonwalker.com/file/4dc2bfb2-b742-4c7d-a7fb-30c5b8e7b6c3.mp4)\n\n\u003e Violent Flintbeetle 3\n",
      "summary": "Violent Flintbeetle 3",
      "image": "https://dropper.waylonwalker.com/file/4dc2bfb2-b742-4c7d-a7fb-30c5b8e7b6c3.mp4",
      "date_published": "2025-09-27T10:34:45Z",
      "date_modified": "2025-09-27T10:34:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-841/",
      "url": "https://waylonwalker.com/thought-841/",
      "title": "💭 This printed design holds a steel tube where the tube goes. #o...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"PWyZB1nha_o\" title=\"This printed design holds a steel tube where the tube goes. #opensourcehardware #conduit\" playlabel=\"Play: This printed design holds a steel tube where the tube goes. #opensourcehardware #conduit\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a super cool movement, I like the idea of giving access to composable components like we have in open source.  You want to build a website you have a bunch of options from raw dogging assembly all the way up to predefined templates that just need your content.  Idk if the analogy is perfect but there are aspects of it that work.  I see where right now we are somewhere in raw dogging c or python.   We have cheap nuts and bolts and some low level things, but once someone needs some coupler like this it’s dropping down to drawing it by hand.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"PWyZB1nha_o\" title=\"This printed design holds a steel tube where the tube goes. #opensourcehardware #conduit\" playlabel=\"Play: This printed design holds a steel tube where the tube goes. #opensourcehardware #conduit\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is a super cool movement, I like the idea of giving access to composable components like we have in open source.  You want to build a website you have a bunch of options from raw dogging assembly all the way up to predefined templates that just need your content.  Idk if the analogy is perfect but there are aspects of it that work.  I see where right now we are somewhere in raw dogging c or python.   We have cheap nuts and bolts and some low level things, but once someone needs some coupler like this it's dropping down to drawing it by hand.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/PWyZB1nha_o",
      "date_published": "2025-09-27T02:16:06Z",
      "date_modified": "2025-09-27T02:16:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/violent-flintbeetle-1/",
      "url": "https://waylonwalker.com/shots/violent-flintbeetle-1/",
      "title": "Violent Flintbeetle 1",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/8b865091-3fa9-4f40-bc0d-10723a0e7e85.mp4\" class=\"glightbox-link\" aria-label=\"Violent Flintbeetle 1\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/8b865091-3fa9-4f40-bc0d-10723a0e7e85.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/8b865091-3fa9-4f40-bc0d-10723a0e7e85.mp4\" type=\"video/mp4\"\u003eViolent Flintbeetle 1\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eViolent Flintbeetle 1\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Violent Flintbeetle 1](https://dropper.waylonwalker.com/file/8b865091-3fa9-4f40-bc0d-10723a0e7e85.mp4)\n\n\u003e Violent Flintbeetle 1\n",
      "summary": "Violent Flintbeetle 1",
      "image": "https://dropper.waylonwalker.com/file/8b865091-3fa9-4f40-bc0d-10723a0e7e85.mp4",
      "date_published": "2025-09-26T18:34:35Z",
      "date_modified": "2025-09-26T18:34:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-840/",
      "url": "https://waylonwalker.com/thought-840/",
      "title": "💭 Print over Part - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ED2olTp8wGw\" title=\"No More Glue\" playlabel=\"Play: No More Glue\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWow, I’ve never seen or thought of multi setup parts this is very thought provoking, not sure how useful it is as we have good adhesives and stuff for printed parts.  I definitely want to try this though\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ED2olTp8wGw\" title=\"No More Glue\" playlabel=\"Play: No More Glue\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWow, I've never seen or thought of multi setup parts this is very thought provoking, not sure how useful it is as we have good adhesives and stuff for printed parts.  I definitely want to try this though \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtube.com/shorts/ED2olTp8wGw?si=UU_E2dlREhavlzJc",
      "date_published": "2025-09-26T14:15:24Z",
      "date_modified": "2025-09-26T14:15:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-839/",
      "url": "https://waylonwalker.com/thought-839/",
      "title": "💭 Haiden Deegan IN for Motocross of Nations?! | The Blair Matthe...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"kZvk4dUyWVs\" title=\"Haiden Deegan IN for Motocross of Nations?! | The Blair Matthes Project 032\" playlabel=\"Play: Haiden Deegan IN for Motocross of Nations?! | The Blair Matthes Project 032\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI can’t believe this thing is so devicive.  I kinda can’t belive that I sit on the same side as Mathes and his always against the grain, non corporate influenced response.  So many others have praised Haiden for bringing back the real gladiator bloodsport that SX is, is it that though??  It’s a race to the finish.  different than a lot of other racing its very unpredictable takeout moves happen, occasionally as an accident, often taking both riders down at the same time.\u003c/p\u003e\n\u003cp\u003eAlso different than MANY sports we have a huge industry of weekend warriors, Some of which make it into the night show of the biggest race on TV.  You see we only bring 20 riders from each class, the top half to top quarter are “Factory” riders, the rest are privateers, sometimes these privateers are completely their on their own.\u003c/p\u003e\n\u003cp\u003eThere is also something called a last chance qualifier.  This is your last chance to get into the night show, often fought by these privateers out of box vans with their brother as a mechanic.  Often that last spot is filled by sketchy on edge riding and takeout moves from a rider that looks like he is barely making it, but would run circles around anyone at your local race.\u003c/p\u003e\n\u003cp\u003eWe celebrate these as a fight to the finish, anything goes, you just gotta cross the finishline.\u003c/p\u003e\n\u003cp\u003eWhat’s different here from last weekend (someone could really write a book on the build up of tension, shit talking, lack of harsh penalties in the rules) is really that Haiden had zero shot at the championship.  He was winning the race, Joe in Second with a secure championship.  This is when Haiden started riding behind him, slowing down for Joe to catch up, and taking shots at Joe until he broke his own collarbone.  He went out knowing he needed to knock Joe down enough to cover the points deficit and the penalty.  This was not a pass for the win, or a pass for the last spot in the night show, this was a pass to clear a deficit which required Joe on the ground.\u003c/p\u003e\n\u003cp\u003eThis seems to be celebrated by half the industry, but dude you had already lost going into this night this aint cool, you lost this one put on a face let Joe have his moment, make your statement by going one one and crushing these dudes by 30 seconds metaphorically, not literally crushing them.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"kZvk4dUyWVs\" title=\"Haiden Deegan IN for Motocross of Nations?! | The Blair Matthes Project 032\" playlabel=\"Play: Haiden Deegan IN for Motocross of Nations?! | The Blair Matthes Project 032\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI can't believe this thing is so devicive.  I kinda can't belive that I sit on the same side as Mathes and his always against the grain, non corporate influenced response.  So many others have praised Haiden for bringing back the real gladiator bloodsport that SX is, is it that though??  It's a race to the finish.  different than a lot of other racing its very unpredictable takeout moves happen, occasionally as an accident, often taking both riders down at the same time.  \n\nAlso different than MANY sports we have a huge industry of weekend warriors, Some of which make it into the night show of the biggest race on TV.  You see we only bring 20 riders from each class, the top half to top quarter are \"Factory\" riders, the rest are privateers, sometimes these privateers are completely their on their own.  \n\nThere is also something called a last chance qualifier.  This is your last chance to get into the night show, often fought by these privateers out of box vans with their brother as a mechanic.  Often that last spot is filled by sketchy on edge riding and takeout moves from a rider that looks like he is barely making it, but would run circles around anyone at your local race.\n\nWe celebrate these as a fight to the finish, anything goes, you just gotta cross the finishline.\n\nWhat's different here from last weekend (someone could really write a book on the build up of tension, shit talking, lack of harsh penalties in the rules) is really that Haiden had zero shot at the championship.  He was winning the race, Joe in Second with a secure championship.  This is when Haiden started riding behind him, slowing down for Joe to catch up, and taking shots at Joe until he broke his own collarbone.  He went out knowing he needed to knock Joe down enough to cover the points deficit and the penalty.  This was not a pass for the win, or a pass for the last spot in the night show, this was a pass to clear a deficit which required Joe on the ground.\n\nThis seems to be celebrated by half the industry, but dude you had already lost going into this night this aint cool, you lost this one put on a face let Joe have his moment, make your statement by going one one and crushing these dudes by 30 seconds metaphorically, not literally crushing them.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=kZvk4dUyWVs",
      "date_published": "2025-09-26T12:36:26Z",
      "date_modified": "2025-09-26T12:36:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "moto",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/doganarif-fastapi-radar/",
      "url": "https://waylonwalker.com/doganarif-fastapi-radar/",
      "title": "⭐ doganarif fastapi-radar",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/doganarif/fastapi-radar\" 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\"\u003efastapi-radar\u003c/a\u003e from \u003ca href=\"https://github.com/doganarif\" 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\"\u003edoganarif\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA powerful debugging dashboard for \u003ca href=\"/fastapi/\" class=\"glossary-term\" title=\"FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.\"\u003eFastAPI\u003c/a\u003e applications. Monitor HTTP requests, SQL queries, and exceptions in real-time with a beautiful React UI. One-line integration, zero configuration needed.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [fastapi-radar](https://github.com/doganarif/fastapi-radar) from [doganarif](https://github.com/doganarif).\n\nA powerful debugging dashboard for FastAPI applications. Monitor HTTP requests, SQL queries, and exceptions in real-time with a beautiful React UI. One-line integration, zero configuration needed.\n",
      "summary": "I'm impressed by fastapi-radar from doganarif.",
      "date_published": "2025-09-25T19:10:17Z",
      "date_modified": "2025-09-25T19:10:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/covetous-pilgrim/",
      "url": "https://waylonwalker.com/shots/covetous-pilgrim/",
      "title": "Covetous Pilgrim",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/a87a67b1-f9a1-4a13-988a-5fd219d60c8f.mp4\" class=\"glightbox-link\" aria-label=\"Covetous Pilgrim\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/a87a67b1-f9a1-4a13-988a-5fd219d60c8f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/a87a67b1-f9a1-4a13-988a-5fd219d60c8f.mp4\" type=\"video/mp4\"\u003eCovetous Pilgrim\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eCovetous Pilgrim\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Covetous Pilgrim](https://dropper.waylonwalker.com/file/a87a67b1-f9a1-4a13-988a-5fd219d60c8f.mp4)\n\n\u003e Covetous Pilgrim\n",
      "summary": "Covetous Pilgrim",
      "image": "https://dropper.waylonwalker.com/file/a87a67b1-f9a1-4a13-988a-5fd219d60c8f.mp4",
      "date_published": "2025-09-23T20:17:30Z",
      "date_modified": "2025-09-23T20:17:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/sherwood-gangfight/",
      "url": "https://waylonwalker.com/shots/sherwood-gangfight/",
      "title": "Sherwood Gangfight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/98dd720b-c2d3-4239-a858-16f83f8d60cb.mp4\" class=\"glightbox-link\" aria-label=\"Sherwood Gangfight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/98dd720b-c2d3-4239-a858-16f83f8d60cb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/98dd720b-c2d3-4239-a858-16f83f8d60cb.mp4\" type=\"video/mp4\"\u003eSherwood Gangfight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSherwood Gangfight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Sherwood Gangfight](https://dropper.waylonwalker.com/file/98dd720b-c2d3-4239-a858-16f83f8d60cb.mp4)\n\n\u003e Sherwood Gangfight\n",
      "summary": "Sherwood Gangfight",
      "image": "https://dropper.waylonwalker.com/file/98dd720b-c2d3-4239-a858-16f83f8d60cb.mp4",
      "date_published": "2025-09-23T20:12:09Z",
      "date_modified": "2025-09-23T20:12:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/long-pin/",
      "url": "https://waylonwalker.com/shots/long-pin/",
      "title": "Long Pin",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/4a2e073e-2054-4485-a52b-e4a5e42b5ce7.mp4\" class=\"glightbox-link\" aria-label=\"Long Pin\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/4a2e073e-2054-4485-a52b-e4a5e42b5ce7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/4a2e073e-2054-4485-a52b-e4a5e42b5ce7.mp4\" type=\"video/mp4\"\u003eLong Pin\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eLong Pin\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Long Pin](https://dropper.waylonwalker.com/file/4a2e073e-2054-4485-a52b-e4a5e42b5ce7.mp4)\n\n\u003e Long Pin\n",
      "summary": "Long Pin",
      "image": "https://dropper.waylonwalker.com/file/4a2e073e-2054-4485-a52b-e4a5e42b5ce7.mp4",
      "date_published": "2025-09-23T20:07:54Z",
      "date_modified": "2025-09-23T20:07:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/halfway-home-gang-fight/",
      "url": "https://waylonwalker.com/shots/halfway-home-gang-fight/",
      "title": "Halfway Home Gang Fight",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/d8616fc1-d271-4819-ac32-49980218221d.mp4\" class=\"glightbox-link\" aria-label=\"Halfway Home Gang Fight\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/d8616fc1-d271-4819-ac32-49980218221d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/d8616fc1-d271-4819-ac32-49980218221d.mp4\" type=\"video/mp4\"\u003eHalfway Home Gang Fight\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHalfway Home Gang Fight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Halfway Home Gang Fight](https://dropper.waylonwalker.com/file/d8616fc1-d271-4819-ac32-49980218221d.mp4)\n\n\u003e Halfway Home Gang Fight\n",
      "summary": "Halfway Home Gang Fight",
      "image": "https://dropper.waylonwalker.com/file/d8616fc1-d271-4819-ac32-49980218221d.mp4",
      "date_published": "2025-09-21T17:20:48Z",
      "date_modified": "2025-09-21T17:20:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/rosary-string/",
      "url": "https://waylonwalker.com/shots/rosary-string/",
      "title": "Rosary String",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/5e4ac436-79b1-43ea-b76a-af9d505cded1.mp4\" class=\"glightbox-link\" aria-label=\"Rosary String\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/5e4ac436-79b1-43ea-b76a-af9d505cded1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/5e4ac436-79b1-43ea-b76a-af9d505cded1.mp4\" type=\"video/mp4\"\u003eRosary String\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eRosary String\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Rosary String](https://dropper.waylonwalker.com/file/5e4ac436-79b1-43ea-b76a-af9d505cded1.mp4)\n\n\u003e Rosary String\n",
      "summary": "Rosary String",
      "image": "https://dropper.waylonwalker.com/file/5e4ac436-79b1-43ea-b76a-af9d505cded1.mp4",
      "date_published": "2025-09-21T17:17:31Z",
      "date_modified": "2025-09-21T17:17:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/threefold-pin/",
      "url": "https://waylonwalker.com/shots/threefold-pin/",
      "title": "Threefold Pin",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/872d4fa9-c691-463e-bff5-bf4d53bc626a.mp4\" class=\"glightbox-link\" aria-label=\"Threefold Pin\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/872d4fa9-c691-463e-bff5-bf4d53bc626a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/872d4fa9-c691-463e-bff5-bf4d53bc626a.mp4\" type=\"video/mp4\"\u003eThreefold Pin\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThreefold Pin\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Threefold Pin](https://dropper.waylonwalker.com/file/872d4fa9-c691-463e-bff5-bf4d53bc626a.mp4)\n\n\u003e Threefold Pin\n",
      "summary": "Threefold Pin",
      "image": "https://dropper.waylonwalker.com/file/872d4fa9-c691-463e-bff5-bf4d53bc626a.mp4",
      "date_published": "2025-09-21T17:15:39Z",
      "date_modified": "2025-09-21T17:15:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/thread-storm/",
      "url": "https://waylonwalker.com/shots/thread-storm/",
      "title": "Thread Storm",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/59e4f22e-e59f-46e6-80ba-ff8a626e93ba.mp4\" class=\"glightbox-link\" aria-label=\"Thread Storm\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/59e4f22e-e59f-46e6-80ba-ff8a626e93ba.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/59e4f22e-e59f-46e6-80ba-ff8a626e93ba.mp4\" type=\"video/mp4\"\u003eThread Storm\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThread Storm\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Thread Storm](https://dropper.waylonwalker.com/file/59e4f22e-e59f-46e6-80ba-ff8a626e93ba.mp4)\n\n\u003e Thread Storm\n",
      "summary": "Thread Storm",
      "image": "https://dropper.waylonwalker.com/file/59e4f22e-e59f-46e6-80ba-ff8a626e93ba.mp4",
      "date_published": "2025-09-21T17:14:04Z",
      "date_modified": "2025-09-21T17:14:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/funk-track-1/",
      "url": "https://waylonwalker.com/shots/funk-track-1/",
      "title": "Funk Track 1",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ab41d5f8-92a5-4fde-966b-f791ff84f776.mp4\" class=\"glightbox-link\" aria-label=\"funk-track-1-1080p.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/ab41d5f8-92a5-4fde-966b-f791ff84f776.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/ab41d5f8-92a5-4fde-966b-f791ff84f776.mp4\" type=\"video/mp4\"\u003efunk-track-1-1080p.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eProgress so far on the Funk server elytra track.  It goes through two sea lanturn lit caves so far.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![funk-track-1-1080p.mp4](https://dropper.waylonwalker.com/api/file/ab41d5f8-92a5-4fde-966b-f791ff84f776.mp4)\n\n\u003e Progress so far on the Funk server elytra track.  It goes through two sea lanturn lit caves so far.\n\n",
      "summary": "Progress so far on the Funk server elytra track. It goes through two sea lanturn lit caves so far.",
      "image": "https://dropper.waylonwalker.com/api/file/2dd0a808-a0d4-4edf-ae4c-9a3e6f8e65ad.mp4",
      "date_published": "2025-09-21T15:52:07Z",
      "date_modified": "2025-09-21T15:52:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "minecraft",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots-get-an-upgrade/",
      "url": "https://waylonwalker.com/shots-get-an-upgrade/",
      "title": "Shots Get An Upgrade To the Main Feed",
      "content_html": "\u003cp\u003eToday I updated my jinja templates and feeds to include shots posts in the main\nfeed.  These posts will prominently show the image in the feed with a small\npost for each one.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/37dea007-e66f-42a5-bd90-6722dd1084dd.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-21T01-19-39-934Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/37dea007-e66f-42a5-bd90-6722dd1084dd.png\" alt=\"screenshot-2025-09-21T01-19-39-934Z.png\"/ data-glightbox=\"description: screenshot-2025-09-21T01-19-39-934Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/\"\u003eShots\u003c/a\u003e are instagram style imge posts\ninspired by \u003ca href=\"https://justin.searls.co/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justin.searls.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justin.searls.co.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://justin.searls.co/shots/\u003c/a\u003e.\u003c/p\u003e\n",
      "content_text": "\nToday I updated my jinja templates and feeds to include shots posts in the main\nfeed.  These posts will prominently show the image in the feed with a small\npost for each one.\n\n![screenshot-2025-09-21T01-19-39-934Z.png](https://dropper.waylonwalker.com/api/file/37dea007-e66f-42a5-bd90-6722dd1084dd.png)\n\n[Shots](https://waylonwalker.com/shots/) are instagram style imge posts\ninspired by https://justin.searls.co/shots/.\n",
      "summary": "Today I updated my jinja templates and feeds to include shots posts in the main feed. These posts will prominently show the image in the feed with a small...",
      "date_published": "2025-09-20T20:19:57Z",
      "date_modified": "2025-09-20T20:19:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/a-full-cheese-board/",
      "url": "https://waylonwalker.com/shots/a-full-cheese-board/",
      "title": "A Full Cheese Board",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9155b4f8-0028-45e5-a83f-52918174772c.jpg\" class=\"glightbox-link\" aria-label=\"A full Cheese Board\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9155b4f8-0028-45e5-a83f-52918174772c.jpg\" alt=\"A full Cheese Board\"/ data-glightbox=\"description: A full Cheese Board\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA macropad filled with cheese keycaps placed in random orientations.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![A full Cheese Board](https://dropper.waylonwalker.com/api/file/9155b4f8-0028-45e5-a83f-52918174772c.jpg)\n\n\u003e A macropad filled with cheese keycaps placed in random orientations.\n\n",
      "summary": "A macropad filled with cheese keycaps placed in random orientations.",
      "image": "https://dropper.waylonwalker.com/api/file/9155b4f8-0028-45e5-a83f-52918174772c.jpg",
      "date_published": "2025-09-20T20:02:58Z",
      "date_modified": "2025-09-20T20:02:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "keycaps",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/full-box-of-cheese-caps/",
      "url": "https://waylonwalker.com/shots/full-box-of-cheese-caps/",
      "title": "Full Box Of Cheese Caps",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/176f26ea-8ed7-46b6-9762-e18a68938caf.jpg\" class=\"glightbox-link\" aria-label=\"full box of cheese caps\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/176f26ea-8ed7-46b6-9762-e18a68938caf.jpg\" alt=\"full box of cheese caps\"/ data-glightbox=\"description: full box of cheese caps\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA full box of 9 keycaps sit behind a cap placed in front, they are custom wedge of cheese caps.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![full box of cheese caps](https://dropper.waylonwalker.com/api/file/176f26ea-8ed7-46b6-9762-e18a68938caf.jpg)\n\n\u003e A full box of 9 keycaps sit behind a cap placed in front, they are custom wedge of cheese caps.\n\n",
      "summary": "A full box of 9 keycaps sit behind a cap placed in front, they are custom wedge of cheese caps.",
      "image": "https://dropper.waylonwalker.com/api/file/176f26ea-8ed7-46b6-9762-e18a68938caf.jpg",
      "date_published": "2025-09-20T20:00:00Z",
      "date_modified": "2025-09-20T20:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "keycaps",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/printing-a-full-plate-of-cheese-hats/",
      "url": "https://waylonwalker.com/shots/printing-a-full-plate-of-cheese-hats/",
      "title": "Printing A Full Plate Of Cheese Hats",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/69ce1210-bbff-474f-9507-787d9043dc36.jpg\" class=\"glightbox-link\" aria-label=\"printing a full plate of cheese hats\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/69ce1210-bbff-474f-9507-787d9043dc36.jpg\" alt=\"printing a full plate of cheese hats\"/ data-glightbox=\"description: printing a full plate of cheese hats\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA Bambu Lab Printer is working on the first few layers of cheese hats to be placed on top of keycaps.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![printing a full plate of cheese hats](https://dropper.waylonwalker.com/api/file/69ce1210-bbff-474f-9507-787d9043dc36.jpg)\n\n\u003e A Bambu Lab Printer is working on the first few layers of cheese hats to be placed on top of keycaps.\n\n",
      "summary": "A Bambu Lab Printer is working on the first few layers of cheese hats to be placed on top of keycaps.",
      "image": "https://dropper.waylonwalker.com/api/file/69ce1210-bbff-474f-9507-787d9043dc36.jpg",
      "date_published": "2025-09-20T19:58:16Z",
      "date_modified": "2025-09-20T19:58:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cheese-cap-on-a-macropad/",
      "url": "https://waylonwalker.com/shots/cheese-cap-on-a-macropad/",
      "title": "Cheese Cap On A Macropad",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4b2c0fb1-3216-4c5c-a659-fbaf9ef189ae.jpg\" class=\"glightbox-link\" aria-label=\"Cheese cap on a macropad\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4b2c0fb1-3216-4c5c-a659-fbaf9ef189ae.jpg\" alt=\"Cheese cap on a macropad\"/ data-glightbox=\"description: Cheese cap on a macropad\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA cheese keycap placed in the middle of a macropad, currounded by black/purple caps in a blue case.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Cheese cap on a macropad](https://dropper.waylonwalker.com/api/file/4b2c0fb1-3216-4c5c-a659-fbaf9ef189ae.jpg)\n\n\u003e A cheese keycap placed in the middle of a macropad, currounded by black/purple caps in a blue case.\n\n",
      "summary": "A cheese keycap placed in the middle of a macropad, currounded by black/purple caps in a blue case.",
      "image": "https://dropper.waylonwalker.com/api/file/4b2c0fb1-3216-4c5c-a659-fbaf9ef189ae.jpg",
      "date_published": "2025-09-20T19:57:12Z",
      "date_modified": "2025-09-20T19:57:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-838/",
      "url": "https://waylonwalker.com/thought-838/",
      "title": "💭 Chris Joslin 360 Flips El Toro!!!!! - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"5cRKSwWSd5U\" title=\"Chris Joslin 360 Flips El Toro!!!!!\" playlabel=\"Play: Chris Joslin 360 Flips El Toro!!!!!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eEpic that this Joslin came back 7 years later to complete this.  I thought el Toro was dead, aparantly not.  Dude got robbed by a broke ass truck, this must have been eating his soul for the last 7 years.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"5cRKSwWSd5U\" title=\"Chris Joslin 360 Flips El Toro!!!!!\" playlabel=\"Play: Chris Joslin 360 Flips El Toro!!!!!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nEpic that this Joslin came back 7 years later to complete this.  I thought el Toro was dead, aparantly not.  Dude got robbed by a broke ass truck, this must have been eating his soul for the last 7 years.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=5cRKSwWSd5U\u0026t=631s",
      "date_published": "2025-09-20T15:58:45Z",
      "date_modified": "2025-09-20T15:58:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "skate",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/a-box-of-caps-and-a-macropad/",
      "url": "https://waylonwalker.com/shots/a-box-of-caps-and-a-macropad/",
      "title": "A Box Of Caps And A Macropad",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg\" class=\"glightbox-link\" aria-label=\"a box of caps and a macropad\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg\" alt=\"a box of caps and a macropad\"/ data-glightbox=\"description: a box of caps and a macropad\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA macropad with a pixel heart and mlg glasses sit on a clean white background.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![a box of caps and a macropad](https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg)\n\n\u003e A macropad with a pixel heart and mlg glasses sit on a clean white background.\n\n",
      "summary": "A macropad with a pixel heart and mlg glasses sit on a clean white background.",
      "image": "https://dropper.waylonwalker.com/api/file/ea421e67-5cb0-4a9f-be14-08a5004df493.jpg",
      "date_published": "2025-09-19T19:55:50Z",
      "date_modified": "2025-09-19T19:55:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/heart-of-a-macropad/",
      "url": "https://waylonwalker.com/shots/heart-of-a-macropad/",
      "title": "Heart Of A Macropad",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c924cd8b-7bfc-411f-af71-4b7c0f2005bc.jpg\" class=\"glightbox-link\" aria-label=\"heart of a macropad\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c924cd8b-7bfc-411f-af71-4b7c0f2005bc.jpg\" alt=\"heart of a macropad\"/ data-glightbox=\"description: heart of a macropad\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA pixel heart kecap in the center of a macropad, the macropad is admittedly dirty, filled with small bits of fuzz.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![heart of a macropad](https://dropper.waylonwalker.com/api/file/c924cd8b-7bfc-411f-af71-4b7c0f2005bc.jpg)\n\n\u003e A pixel heart kecap in the center of a macropad, the macropad is admittedly dirty, filled with small bits of fuzz.\n\n",
      "summary": "A pixel heart kecap in the center of a macropad, the macropad is admittedly dirty, filled with small bits of fuzz.",
      "image": "https://dropper.waylonwalker.com/api/file/c924cd8b-7bfc-411f-af71-4b7c0f2005bc.jpg",
      "date_published": "2025-09-19T19:54:33Z",
      "date_modified": "2025-09-19T19:54:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/first-cap-hat,-it's-a-heart/",
      "url": "https://waylonwalker.com/shots/first-cap-hat,-it's-a-heart/",
      "title": "First Cap Hat, It's A Heart",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/485cb6ed-520b-46f0-98a0-fed231a8626d.jpg\" class=\"glightbox-link\" aria-label=\"First Cap Hat, It’s a heart\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/485cb6ed-520b-46f0-98a0-fed231a8626d.jpg\" alt=\"First Cap Hat, It’s a heart\"/ data-glightbox=\"description: First Cap Hat, It’s a heart\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA 3d printed keycap with a heart glued to the top of it.  The heart resembles a pixelated game asset.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![First Cap Hat, It's a heart](https://dropper.waylonwalker.com/api/file/485cb6ed-520b-46f0-98a0-fed231a8626d.jpg)\n\n\u003e A 3d printed keycap with a heart glued to the top of it.  The heart resembles a pixelated game asset.\n\n",
      "summary": "A 3d printed keycap with a heart glued to the top of it. The heart resembles a pixelated game asset.",
      "image": "https://dropper.waylonwalker.com/api/file/485cb6ed-520b-46f0-98a0-fed231a8626d.jpg",
      "date_published": "2025-09-19T19:52:54Z",
      "date_modified": "2025-09-19T19:52:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-837/",
      "url": "https://waylonwalker.com/thought-837/",
      "title": "💭 Big W: A Family Tradition",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.bigwengineering.com/post/big-w-a-family-tradition?utm_source=linkedin\u0026amp;utm_medium=blog.post-promoter\u0026amp;utm_campaign=b9f7c31c-6725-4253-bb37-b10502942676\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://static.wixstatic.com/media/e46759_badd51748b734eb19edcf39a0a9830ad~mv2.jpg/v1/fill/w_1000,h_753,al_c,q_85,usm_0.66_1.00_0.01/e46759_badd51748b734eb19edcf39a0a9830ad~mv2.jpg\" alt=\"Big W:  A Family Tradition — A quick look into where we came from and what inspires us to do what it takes to build a solid reputation.\" loading=\"lazy\"/ data-glightbox=\"description: Big W:  A Family Tradition — A quick look into where we came from and what inspires us to do what it takes to build a solid reputation.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBig W:  A Family Tradition\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA quick look into where we came from and what inspires us to do what it takes to build a solid reputation.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBig W Engineering Solutions · bigwengineering.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI first met Adam in college, he seemed like quite a character on the outside, but was always quite smart and often leaned towards realistic solutions to problems rather than over complicating things.  He was part of the SAE Formula car, well known for taking a simple problem and trying to turn it into a real formula one carbon fiber solution.  I remember a period where he was a fan of old world blacksmithing as they would say at the time.  He even got a few very simple and light parts on the car that were easy to make unlike the carbon fiber alternatives.  By the time I was there he was more of a leader and did not do a lot of design on any whole system, but would take out class projects for a component or help with some hard problems.  This company feels like it is a great extension of who he was a that time, with about 15 years of professional experience tacked on.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.bigwengineering.com/post/big-w-a-family-tradition?utm_source=linkedin\u0026amp;utm_medium=blog.post-promoter\u0026amp;utm_campaign=b9f7c31c-6725-4253-bb37-b10502942676\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://static.wixstatic.com/media/e46759_badd51748b734eb19edcf39a0a9830ad~mv2.jpg/v1/fill/w_1000,h_753,al_c,q_85,usm_0.66_1.00_0.01/e46759_badd51748b734eb19edcf39a0a9830ad~mv2.jpg\" alt=\"Big W:  A Family Tradition — A quick look into where we came from and what inspires us to do what it takes to build a solid reputation.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBig W:  A Family Tradition\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA quick look into where we came from and what inspires us to do what it takes to build a solid reputation.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBig W Engineering Solutions \u0026middot; bigwengineering.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI first met Adam in college, he seemed like quite a character on the outside, but was always quite smart and often leaned towards realistic solutions to problems rather than over complicating things.  He was part of the SAE Formula car, well known for taking a simple problem and trying to turn it into a real formula one carbon fiber solution.  I remember a period where he was a fan of old world blacksmithing as they would say at the time.  He even got a few very simple and light parts on the car that were easy to make unlike the carbon fiber alternatives.  By the time I was there he was more of a leader and did not do a lot of design on any whole system, but would take out class projects for a component or help with some hard problems.  This company feels like it is a great extension of who he was a that time, with about 15 years of professional experience tacked on.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.bigwengineering.com/post/big-w-a-family-tradition?utm_medium=blog.post-promoter\u0026utm_campaign=b9f7c31c-6725-4253-bb37-b10502942676",
      "date_published": "2025-09-19T14:03:04Z",
      "date_modified": "2025-09-19T14:03:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/unhappychoice-gittype/",
      "url": "https://waylonwalker.com/unhappychoice-gittype/",
      "title": "⭐ unhappychoice gittype",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/unhappychoice/gittype\" 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\"\u003egittype\u003c/a\u003e, created by \u003ca href=\"https://github.com/unhappychoice\" 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\"\u003eunhappychoice\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA CLI code-typing game that turns your source code into typing challenges\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [gittype](https://github.com/unhappychoice/gittype), created by [unhappychoice](https://github.com/unhappychoice).\n\nA CLI code-typing game that turns your source code into typing challenges\n",
      "summary": "If you're into interesting projects, don't miss out on gittype, created by unhappychoice.",
      "date_published": "2025-09-18T23:32:00Z",
      "date_modified": "2025-09-18T23:32:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/first-box-of-caps/",
      "url": "https://waylonwalker.com/shots/first-box-of-caps/",
      "title": "First Box Of Caps",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/203f0838-be6d-43d6-b88f-430c940cb642.jpg\" class=\"glightbox-link\" aria-label=\"first box of caps\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/203f0838-be6d-43d6-b88f-430c940cb642.jpg\" alt=\"first box of caps\"/ data-glightbox=\"description: first box of caps\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA print in place box sitting on the printer bed used as a raft for the 9 caps perectly nestled inside in a 3 by 3 pattern.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![first box of caps](https://dropper.waylonwalker.com/api/file/203f0838-be6d-43d6-b88f-430c940cb642.jpg)\n\n\u003e A print in place box sitting on the printer bed used as a raft for the 9 caps perectly nestled inside in a 3 by 3 pattern.\n\n",
      "summary": "A print in place box sitting on the printer bed used as a raft for the 9 caps perectly nestled inside in a 3 by 3 pattern.",
      "image": "https://dropper.waylonwalker.com/api/file/203f0838-be6d-43d6-b88f-430c940cb642.jpg",
      "date_published": "2025-09-18T19:51:18Z",
      "date_modified": "2025-09-18T19:51:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/fourth-chorus/",
      "url": "https://waylonwalker.com/shots/fourth-chorus/",
      "title": "Fourth Chorus",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/528a899c-9eb1-4237-a5de-0ddaa2190b94.mp4\" class=\"glightbox-link\" aria-label=\"Fourth Chorus\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/528a899c-9eb1-4237-a5de-0ddaa2190b94.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/528a899c-9eb1-4237-a5de-0ddaa2190b94.mp4\" type=\"video/mp4\"\u003eFourth Chorus\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eFourth Chorus\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Fourth Chorus](https://dropper.waylonwalker.com/file/528a899c-9eb1-4237-a5de-0ddaa2190b94.mp4)\n\n\u003e Fourth Chorus\n",
      "summary": "Fourth Chorus",
      "image": "https://dropper.waylonwalker.com/file/528a899c-9eb1-4237-a5de-0ddaa2190b94.mp4",
      "date_published": "2025-09-17T20:34:16Z",
      "date_modified": "2025-09-17T20:34:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/zmk-two-hand-hold-down/",
      "url": "https://waylonwalker.com/zmk-two-hand-hold-down/",
      "title": "zmk two hand hold down",
      "content_html": "\u003cp\u003eI don’t know about you, but I don’t re-flash my keyboard enough to ever remember\nwhere I put the bootloader.  Sometimes its  the last thing I think about in a\nrefactor and I end up cornering myself into a place where I cant get into that\nlayer anymore.  I’ve started putting hardware switches on my newer builds, but\nsome older builds don’t have a hardware one, so it requires disassembly and\njumping the microcontroller.  Even when I have one though, I gotta flip my\nboard over and its annoying sometimes, so I prefer to have a keystroke for it.\u003c/p\u003e\n\u003ch2 id=\"two-hand-hold-down\"\u003eTwo Hand hold down \u003ca href=\"#two-hand-hold-down\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat I’ve landed on recently is the idea of a two hand hold down combo for the\nbootloader.  These combos are ones that there is no way I can hit without\npicking my hands up from their normal homerow position and pressing four keys\nsimultaneously with pointer and thumbs.\u003c/p\u003e\n\u003cp\u003eHere are some example layouts from \u003ca href=\"https://nickcoutsos.github.io/keymap-editor/\"\u003ekeymap-editor\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fd4d31aa-b151-4bce-b411-8e4480898b83.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-17T01-06-16-427Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/fd4d31aa-b151-4bce-b411-8e4480898b83.png\" alt=\"screenshot-2025-09-17T01-06-16-427Z.png\"/ data-glightbox=\"description: screenshot-2025-09-17T01-06-16-427Z.png\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003e40% layout - similar to corne\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/74626408-cb1e-43bd-8c4c-7fb2abb16ea2.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-17T01-05-02-298Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/74626408-cb1e-43bd-8c4c-7fb2abb16ea2.png\" alt=\"screenshot-2025-09-17T01-05-02-298Z.png\"/ data-glightbox=\"description: screenshot-2025-09-17T01-05-02-298Z.png\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere it is on my Son’s 3x5 macropad\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8afdd2cd-c362-40cb-b9ef-9cd70ba4b0cb.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-17T01-05-30-687Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/8afdd2cd-c362-40cb-b9ef-9cd70ba4b0cb.png\" alt=\"screenshot-2025-09-17T01-05-30-687Z.png\"/ data-glightbox=\"description: screenshot-2025-09-17T01-05-30-687Z.png\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere it is on my 3x3 macropad\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"timing\"\u003eTiming \u003ca href=\"#timing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can even give it a long prior timeout to really make sure that its not an\naccidental hit.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4a0c7dc0-f096-4be2-9b4d-e89cb787179a.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-17T01-10-22-100Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4a0c7dc0-f096-4be2-9b4d-e89cb787179a.png\" alt=\"screenshot-2025-09-17T01-10-22-100Z.png\"/ data-glightbox=\"description: screenshot-2025-09-17T01-10-22-100Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI don't know about you, but I don't re-flash my keyboard enough to ever remember\nwhere I put the bootloader.  Sometimes its  the last thing I think about in a\nrefactor and I end up cornering myself into a place where I cant get into that\nlayer anymore.  I've started putting hardware switches on my newer builds, but\nsome older builds don't have a hardware one, so it requires disassembly and\njumping the microcontroller.  Even when I have one though, I gotta flip my\nboard over and its annoying sometimes, so I prefer to have a keystroke for it.\n\n## Two Hand hold down\n\nWhat I've landed on recently is the idea of a two hand hold down combo for the\nbootloader.  These combos are ones that there is no way I can hit without\npicking my hands up from their normal homerow position and pressing four keys\nsimultaneously with pointer and thumbs.\n\nHere are some example layouts from [keymap-editor](https://nickcoutsos.github.io/keymap-editor/)\n\n![screenshot-2025-09-17T01-06-16-427Z.png](https://dropper.waylonwalker.com/api/file/fd4d31aa-b151-4bce-b411-8e4480898b83.png)\n\n\u003e 40% layout - similar to corne\n\n![screenshot-2025-09-17T01-05-02-298Z.png](https://dropper.waylonwalker.com/api/file/74626408-cb1e-43bd-8c4c-7fb2abb16ea2.png)\n\n\u003e Here it is on my Son's 3x5 macropad\n\n\n![screenshot-2025-09-17T01-05-30-687Z.png](https://dropper.waylonwalker.com/api/file/8afdd2cd-c362-40cb-b9ef-9cd70ba4b0cb.png)\n\u003e Here it is on my 3x3 macropad\n\n## Timing\n\nYou can even give it a long prior timeout to really make sure that its not an\naccidental hit.\n\n![screenshot-2025-09-17T01-10-22-100Z.png](https://dropper.waylonwalker.com/api/file/4a0c7dc0-f096-4be2-9b4d-e89cb787179a.png)\n\n",
      "summary": "I don't know about you, but I don't re-flash my keyboard enough to ever remember where I put the bootloader. Sometimes its the last thing I think about in a...",
      "date_published": "2025-09-17T20:04:36Z",
      "date_modified": "2025-09-17T20:04:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/lace/",
      "url": "https://waylonwalker.com/shots/lace/",
      "title": "Lace",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/bb9fa98a-da2b-4dfe-95a8-3ad9a88650ef.mp4\" class=\"glightbox-link\" aria-label=\"Lace\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/bb9fa98a-da2b-4dfe-95a8-3ad9a88650ef.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/bb9fa98a-da2b-4dfe-95a8-3ad9a88650ef.mp4\" type=\"video/mp4\"\u003eLace\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eLace\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Lace](https://dropper.waylonwalker.com/file/bb9fa98a-da2b-4dfe-95a8-3ad9a88650ef.mp4)\n\n\u003e Lace\n",
      "summary": "Lace",
      "image": "https://dropper.waylonwalker.com/file/bb9fa98a-da2b-4dfe-95a8-3ad9a88650ef.mp4",
      "date_published": "2025-09-17T08:46:06Z",
      "date_modified": "2025-09-17T08:46:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/beginning-of-little-boxes/",
      "url": "https://waylonwalker.com/shots/beginning-of-little-boxes/",
      "title": "Beginning Of Little Boxes",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ce5b4e0b-9164-4588-b0df-176e33fa2824.jpg\" class=\"glightbox-link\" aria-label=\"beginning of little boxes\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ce5b4e0b-9164-4588-b0df-176e33fa2824.jpg\" alt=\"beginning of little boxes\"/ data-glightbox=\"description: beginning of little boxes\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eFour little 3d printed boxes laying on a white background, one contains a painted lid that says M 2x5.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![beginning of little boxes](https://dropper.waylonwalker.com/api/file/ce5b4e0b-9164-4588-b0df-176e33fa2824.jpg)\n\n\u003e Four little 3d printed boxes laying on a white background, one contains a painted lid that says M 2x5.\n\n",
      "summary": "Four little 3d printed boxes laying on a white background, one contains a painted lid that says M 2x5.",
      "image": "https://dropper.waylonwalker.com/api/file/ce5b4e0b-9164-4588-b0df-176e33fa2824.jpg",
      "date_published": "2025-09-16T21:04:44Z",
      "date_modified": "2025-09-16T21:04:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/why-make-a-website-in-2025/",
      "url": "https://waylonwalker.com/why-make-a-website-in-2025/",
      "title": "Why Make a Website in 2025",
      "content_html": "\u003cp\u003eInspired by\n\u003ca href=\"https://blog.jim-nielsen.com/2025/why-make-a-website-in-2025/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eJim\u003c/a\u003e and\n\u003ca href=\"https://daverupert.com/2025/09/why-would-anybody-start-a-website/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/daverupert.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/daverupert.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDave\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"its-fun\"\u003eIt’s Fun \u003ca href=\"#its-fun\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf it’s not something that you enjoy, you might as well move on there are far\nbetter ways to spend your time in 2025.  Only the weirdos read this shit\nanymore, the masses have long moved on to curated social media feeds, and on to\nchatting with llms.  I enjoy spending some time in the digital garden every\nonce in awhile tweaking templates, creating \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e plugins to do\ninteresting things.  I enjoy expressing my thoughts, or at least shouting them\ninto the ether.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI’ll be the first to admit that I often go to an llm for first pass at many\nthings that I could look up in a guide or 😲 the docs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"i-enjoy-reading-others\"\u003eI enjoy reading others \u003ca href=\"#i-enjoy-reading-others\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis year I have made extra effort to add more and more people into my\n[[reader]].  I enjoy reading content from people I chose to follow and can\nremove whenever I want.  I enjoy reading actual human thoughts and not ai\ngenerated content all day.\u003c/p\u003e\n\u003cp\u003eI even will create \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e based on these posts that I find interesting,\nand want to further share to others.  I want to give these people that took\ntime to make something a little boost.\u003c/p\u003e\n\u003ch2 id=\"not-perfection\"\u003eNot Perfection \u003ca href=\"#not-perfection\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe last thing we need in 2025 is perfection.  We have enough ai generated slop\nthat is far from perfectly accurate that sits behind a veil of mostly clean\nlook, semi consistent feel, and a narrow set of tone.  I see it in gen z there\nis something about the imperfect that is coming out.  Not perfectly cut video\nor audio.  I just heard Gary Vee mention this morning that a siren going off in\nthe background of NYC has a somewhat natural human feel to it now.\u003c/p\u003e\n\u003ch2 id=\"ownership\"\u003eOwnership \u003ca href=\"#ownership\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://daverupert.com/2025/09/why-would-anybody-start-a-website/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/daverupert.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/daverupert.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eDave\u003c/a\u003e\npoints out that the first thought for most people trying to make a business or\npop off as an influencer is TikTok, then a few similar apps.  If you are trying\nto reach a large audience and swim in the big pond with the big fish thats\nwhere you need to go.\u003c/p\u003e\n\u003cp\u003eBut you don’t own that content anymore.  Some posts will pop, some will be lost\nto the algorithm for nothing more that the first few eyes that got it swiped\npast too fast.  The whole platform can go, or choose to not show your content,\nits their platform.  You don’t pay them for anything.  They are allowed to do\nwhat they want.\u003c/p\u003e\n\u003cp\u003eIf you want some ownership to keep your content alive, curate a small, focused,\ncore audience, also put that on a website.\u003c/p\u003e\n\u003ch2 id=\"not-for-the-faint-of-heart\"\u003eNot for the faint of heart \u003ca href=\"#not-for-the-faint-of-heart\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt’s not easy to manage hundreds of posts, images, builds, servers.  Theres\nprobably a hundred ways to make it easier, but if you really want full control,\nfull DIY, it takes time to do.\u003c/p\u003e\n\u003ch2 id=\"learn-a-skill\"\u003eLearn a skill \u003ca href=\"#learn-a-skill\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis can go a few different ways, One is that you can make a blog or site about\na topic, deep dive into this topic.  Create blogs, videos, images, about this\ntopic.  Create real content that real people find interesting.\u003c/p\u003e\n\u003cp\u003eOR a bit meta, you can learn more about tech.  This site is built with \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, its a static site generator that I built myself mostly to make this\nsite.  I’ve learned a ton about markdown, \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e, ast, python, plugin\narchitecture in doing so.  I build this site in kubernetes, another skill that\nI wanted to develop, and owning my own services that I have real skin in the\ngame for is a great way to do so.\u003c/p\u003e\n\u003ch2 id=\"just-build-websites\"\u003eJust Build Websites \u003ca href=\"#just-build-websites\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs the opening to \u003ca href=\"https://shoptalkshow.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/shoptalkshow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/shoptalkshow.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eshoptalkshow\u003c/a\u003e says, just make\nwebsites.  Who the fuck cares why or how.  The important thing is that you\nbuilt something, maybe it is for an audience of one or one million, doesn’t\nmatter, keep the internet alive and just build something.\u003c/p\u003e\n",
      "content_text": "\nInspired by\n[Jim](https://blog.jim-nielsen.com/2025/why-make-a-website-in-2025/) and\n[Dave](https://daverupert.com/2025/09/why-would-anybody-start-a-website/)\n\n## It's Fun\n\nIf it's not something that you enjoy, you might as well move on there are far\nbetter ways to spend your time in 2025.  Only the weirdos read this shit\nanymore, the masses have long moved on to curated social media feeds, and on to\nchatting with llms.  I enjoy spending some time in the digital garden every\nonce in awhile tweaking templates, creating \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e plugins to do\ninteresting things.  I enjoy expressing my thoughts, or at least shouting them\ninto the ether.\n\n\u003e I'll be the first to admit that I often go to an llm for first pass at many\n\u003e things that I could look up in a guide or 😲 the docs.\n\n## I enjoy reading others\n\nThis year I have made extra effort to add more and more people into my\n[[reader]].  I enjoy reading content from people I chose to follow and can\nremove whenever I want.  I enjoy reading actual human thoughts and not ai\ngenerated content all day.\n\nI even will create \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e based on these posts that I find interesting,\nand want to further share to others.  I want to give these people that took\ntime to make something a little boost.\n\n## Not Perfection\n\nThe last thing we need in 2025 is perfection.  We have enough ai generated slop\nthat is far from perfectly accurate that sits behind a veil of mostly clean\nlook, semi consistent feel, and a narrow set of tone.  I see it in gen z there\nis something about the imperfect that is coming out.  Not perfectly cut video\nor audio.  I just heard Gary Vee mention this morning that a siren going off in\nthe background of NYC has a somewhat natural human feel to it now.\n\n## Ownership\n\n[Dave](https://daverupert.com/2025/09/why-would-anybody-start-a-website/)\npoints out that the first thought for most people trying to make a business or\npop off as an influencer is TikTok, then a few similar apps.  If you are trying\nto reach a large audience and swim in the big pond with the big fish thats\nwhere you need to go.\n\nBut you don't own that content anymore.  Some posts will pop, some will be lost\nto the algorithm for nothing more that the first few eyes that got it swiped\npast too fast.  The whole platform can go, or choose to not show your content,\nits their platform.  You don't pay them for anything.  They are allowed to do\nwhat they want.\n\nIf you want some ownership to keep your content alive, curate a small, focused,\ncore audience, also put that on a website.\n\n## Not for the faint of heart\n\nIt's not easy to manage hundreds of posts, images, builds, servers.  Theres\nprobably a hundred ways to make it easier, but if you really want full control,\nfull DIY, it takes time to do.\n\n## Learn a skill\n\nThis can go a few different ways, One is that you can make a blog or site about\na topic, deep dive into this topic.  Create blogs, videos, images, about this\ntopic.  Create real content that real people find interesting.\n\nOR a bit meta, you can learn more about tech.  This site is built with \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, its a static site generator that I built myself mostly to make this\nsite.  I've learned a ton about markdown, html, ast, python, plugin\narchitecture in doing so.  I build this site in kubernetes, another skill that\nI wanted to develop, and owning my own services that I have real skin in the\ngame for is a great way to do so.\n\n## Just Build Websites\n\nAs the opening to [shoptalkshow](https://shoptalkshow.com/) says, just make\nwebsites.  Who the fuck cares why or how.  The important thing is that you\nbuilt something, maybe it is for an audience of one or one million, doesn't\nmatter, keep the internet alive and just build something.\n",
      "summary": "Inspired by Jim and Dave",
      "date_published": "2025-09-16T19:37:23Z",
      "date_modified": "2025-09-16T19:37:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-836/",
      "url": "https://waylonwalker.com/thought-836/",
      "title": "💭 Meet Gor on X: \"SQLite added generated columns in 3.31 (around...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/MeetGor21/status/1967818642768470447\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve never tried generated columns, but it is something that I’m interested in.  It is nice to have things computed and in the database if you ever need to query on them.  My brain is now churning with possibilities and quesions, does this work with Alembic? How does this compare to views?\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2b763b3d-1709-47e6-a13d-bfec7baef47d.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-16T13-52-48-868Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2b763b3d-1709-47e6-a13d-bfec7baef47d.png\" alt=\"screenshot-2025-09-16T13-52-48-868Z.png\"/ data-glightbox=\"description: screenshot-2025-09-16T13-52-48-868Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/MeetGor21/status/1967818642768470447\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI've never tried generated columns, but it is something that I'm interested in.  It is nice to have things computed and in the database if you ever need to query on them.  My brain is now churning with possibilities and quesions, does this work with Alembic? How does this compare to views?\n\n![screenshot-2025-09-16T13-52-48-868Z.png](https://dropper.waylonwalker.com/api/file/2b763b3d-1709-47e6-a13d-bfec7baef47d.png)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/MeetGor21/status/1967818642768470447",
      "date_published": "2025-09-16T13:54:52Z",
      "date_modified": "2025-09-16T13:54:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "database",
        "db",
        "sqlite",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/vanilla-html-hover-text/",
      "url": "https://waylonwalker.com/vanilla-html-hover-text/",
      "title": "vanilla html hover text",
      "content_html": "\u003cp\u003eI needed to display some hover text in a web app that I am using tailwind and\njinja on.  It has no js, and no build other than the tailwind. I want this to\nremain \u003cspan style=\"cursor: help; color:yellow;\" title=\"respective to the\npython developer I am and the team it is used for\"\u003esimple\u003c/span\u003e. Turns out\nthat you can use a span with a title attribute to get hover text in\n\u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003eHTML\u003c/a\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eI needed to display some hover text in a web app that I am using tailwind and\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ejinja on.  It has no js, and no build other than the tailwind. I want this to\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eremain \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003espan\u003c/span\u003e \u003cspan class=\"na\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#39;cursor: help; color:yellow;\u0026#39;\u003c/span\u003e \u003cspan class=\"na\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#39;respective to the\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003epython developer I am and the team it is used for\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003esimple\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003espan\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI needed to display some hover text in a web app that I am using tailwind and\njinja on.  It has no js, and no build other than the tailwind. I want this to\nremain \u003cspan style='cursor: help; color:yellow;' title='respective to the\npython developer I am and the team it is used for'\u003esimple\u003c/span\u003e. Turns out\nthat you can use a span with a title attribute to get hover text in\nHTML.\n\n``` html\n\u003cp\u003e\nI needed to display some hover text in a web app that I am using tailwind and\njinja on.  It has no js, and no build other than the tailwind. I want this to\nremain \u003cspan style='cursor: help; color:yellow;' title='respective to the\npython developer I am and the team it is used for'\u003esimple\u003c/span\u003e.\n\u003c/p\u003e\n```\n",
      "summary": "I needed to display some hover text in a web app that I am using tailwind and jinja on. It has no js, and no build other than the tailwind. I want this to...",
      "date_published": "2025-09-16T11:39:41Z",
      "date_modified": "2025-09-16T11:39:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "html",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-835/",
      "url": "https://waylonwalker.com/thought-835/",
      "title": "💭 Idea to Product in Seconds #PortalPrints - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"47CQMbkzX9o\" title=\"Idea to Product in Seconds #PortalPrints\" playlabel=\"Play: Idea to Product in Seconds #PortalPrints\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e3d-printing is so freaking cool.  I love the idea that someone could get a hyperspecific tool to their needs for super cheap.  Whether it works permanently or to try out one that you want to spend thousands of dollars on to have well done from some high end materials this is a great application.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"47CQMbkzX9o\" title=\"Idea to Product in Seconds #PortalPrints\" playlabel=\"Play: Idea to Product in Seconds #PortalPrints\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n3d-printing is so freaking cool.  I love the idea that someone could get a hyperspecific tool to their needs for super cheap.  Whether it works permanently or to try out one that you want to spend thousands of dollars on to have well done from some high end materials this is a great application.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/47CQMbkzX9o",
      "date_published": "2025-09-16T01:43:59Z",
      "date_modified": "2025-09-16T01:43:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-834/",
      "url": "https://waylonwalker.com/thought-834/",
      "title": "💭 a new chapter",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jesseleite.com/2025/a-new-chapter\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://jesseleite.com/img/asset/YXNzZXRzL3Nlby9vZy1pbWFnZS1iYWctZW5kLnBuZw/og-image-bag-end.png?p=seo_pro_og\u0026amp;s=345669cb43e131dd75d795dca9edb0c7\" alt=\"A New Chapter — In a recent turn of events, I find myself at a bit of a crossroads with an exciting new job on the horizon! In this post, I introduce myself and discuss my vision for the new blog.\" loading=\"lazy\"/ data-glightbox=\"description: A New Chapter — In a recent turn of events, I find myself at a bit of a crossroads with an exciting new job on the horizon! In this post, I introduce myself and discuss my vision for the new blog.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA New Chapter\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn a recent turn of events, I find myself at a bit of a crossroads with an exciting new job on the horizon! In this post, I introduce myself and discuss my vision for the new blog.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eJesse Leite · jesseleite.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSub to this man.  I met Jesse long ago as we both spoke at the same remote vim conf.  He is into vim, weird keyboards, and medroid what more could you ask for.  Now react and exlixer.  I only know \u003ca href=\"https://statamic.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/statamic.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/statamic.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://statamic.com/\u003c/a\u003e through Jesse, they have the sickest branding ever.  Now I will need to see what this \u003ca href=\"https://x.com/savvycal\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\" class=\"has-avatar  has-avatar-before\"\u003esavvycal\u003c/a\u003e is about.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://jesseleite.com/feed\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/jesseleite.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/jesseleite.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://jesseleite.com/feed\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://jesseleite.com/2025/a-new-chapter\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jesseleite.com/img/asset/YXNzZXRzL3Nlby9vZy1pbWFnZS1iYWctZW5kLnBuZw/og-image-bag-end.png?p=seo_pro_og\u0026amp;s=345669cb43e131dd75d795dca9edb0c7\" alt=\"A New Chapter — In a recent turn of events, I find myself at a bit of a crossroads with an exciting new job on the horizon! In this post, I introduce myself and discuss my vision for the new blog.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA New Chapter\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIn a recent turn of events, I find myself at a bit of a crossroads with an exciting new job on the horizon! In this post, I introduce myself and discuss my vision for the new blog.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eJesse Leite \u0026middot; jesseleite.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSub to this man.  I met Jesse long ago as we both spoke at the same remote vim conf.  He is into vim, weird keyboards, and medroid what more could you ask for.  Now react and exlixer.  I only know https://statamic.com/ through Jesse, they have the sickest branding ever.  Now I will need to see what this [savvycal](https://x.com/savvycal) is about.\n\nhttps://jesseleite.com/feed\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://jesseleite.com/2025/a-new-chapter",
      "date_published": "2025-09-16T01:30:36Z",
      "date_modified": "2025-09-16T01:30:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-833/",
      "url": "https://waylonwalker.com/thought-833/",
      "title": "💭 \"Pacman is currently in use, please wait.\"",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bbs.archlinux.org/viewtopic.php?id=67729\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/bbs.archlinux.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/bbs.archlinux.org.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e\u0026#34;Pacman is currently in use, please wait.\u0026#34; / Pacman \u0026amp; Package Upgrade Issues / Arch Linux Forums\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebbs.archlinux.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI ran into this issue today, never have I ever before though. Omarchy looking a bit sus on me.  This was even after a fresh boot, no pacman process running. just realized I forgot to check yay which it has installed for me.   I had to force it in.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo rm /var/lib/pacman/db.lck\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bbs.archlinux.org/viewtopic.php?id=67729\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e\u0026#34;Pacman is currently in use, please wait.\u0026#34; / Pacman \u0026amp; Package Upgrade Issues / Arch Linux Forums\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebbs.archlinux.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI ran into this issue today, never have I ever before though. Omarchy looking a bit sus on me.  This was even after a fresh boot, no pacman process running. just realized I forgot to check yay which it has installed for me.   I had to force it in.\n\n``` bash\nsudo rm /var/lib/pacman/db.lck\n```\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bbs.archlinux.org/viewtopic.php?id=67729",
      "date_published": "2025-09-16T01:26:33Z",
      "date_modified": "2025-09-16T01:26:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "arch",
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/tar-over-ssh/",
      "url": "https://waylonwalker.com/tar-over-ssh/",
      "title": "tar over ssh",
      "content_html": "\u003cp\u003eToday I learned how to use tar over ssh to save hours in file transfers.  I\nkeep all of my projects in ~/\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e (very creative I know, I’ve done it for years\nand haven’t changed).  I just swapped out my main desktop from bazzite to\nhyprland, and wanted to get all of my projects back.  Before killing my\nbazzite install I moved everything over (16GB of many small files), it took\nover 14 hours, maybe longer.  I had started in the morning and just let it\nchurn.\u003c/p\u003e\n\u003cp\u003eThis was not going to happen for re-seeding all of my projects on my new\nsystem, I knew there had to be a better way, I looked at rsync, but for seeding\nI ran into this tar over ssh technique and it only took me 6m51s to pull all of\nmy projects off of my remote server.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh user@192.168.1.100 \u003cspan class=\"s1\"\u003e\u0026#39;tar -C /tank/git -cpf - .\u0026#39;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e tar -C \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$HOME\u003c/span\u003e\u003cspan class=\"s2\"\u003e/git\u0026#34;\u003c/span\u003e -xpf -\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I learned how to use tar over ssh to save hours in file transfers.  I\nkeep all of my projects in ~/git (very creative I know, I've done it for years\nand haven't changed).  I just swapped out my main desktop from bazzite to\nhyprland, and wanted to get all of my projects back.  Before killing my\nbazzite install I moved everything over (16GB of many small files), it took\nover 14 hours, maybe longer.  I had started in the morning and just let it\nchurn.\n\nThis was not going to happen for re-seeding all of my projects on my new\nsystem, I knew there had to be a better way, I looked at rsync, but for seeding\nI ran into this tar over ssh technique and it only took me 6m51s to pull all of\nmy projects off of my remote server.\n\n``` bash\nssh user@192.168.1.100 'tar -C /tank/git -cpf - .' \\\n  | tar -C \"$HOME/git\" -xpf -\n```\n\n\n",
      "summary": "Today I learned how to use tar over ssh to save hours in file transfers. I keep all of my projects in ~/git (very creative I know, I've done it for years and...",
      "date_published": "2025-09-13T10:50:42Z",
      "date_modified": "2025-09-13T10:50:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "cli",
        "homelab",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/mmulet-term-everything/",
      "url": "https://waylonwalker.com/mmulet-term-everything/",
      "title": "⭐ mmulet term.everything",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/mmulet\" 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\"\u003emmulet\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/mmulet/term.everything\" 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\"\u003eterm.everything\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eRun any GUI app in the terminal❗\u003c/p\u003e\n",
      "content_text": "\n[mmulet](https://github.com/mmulet) has done a fantastic job with [term.everything](https://github.com/mmulet/term.everything). Highly recommend taking a look.\n\nRun any GUI app in the terminal❗\n",
      "summary": "mmulet has done a fantastic job with term.everything. Highly recommend taking a look.",
      "date_published": "2025-09-11T13:16:21Z",
      "date_modified": "2025-09-11T13:16:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/store/",
      "url": "https://waylonwalker.com/store/",
      "title": "store",
      "content_html": "\u003cp\u003eI’ve been 3d printing for years, and create a lot of my own designs.  Many of\nthem are hyper specific to me, but for the ones that I think others might find\nuseful I will be putting up here for sale, you can buy prints that will show up\nto your door in a few days.  I’m leaning on the slant3d print farm so this\ndepends on your proximity to them.  The prints are typically black petg, if you\nwould like a different color reach out to me and I will see what other options\nwe have, or for an additional fee I can print it myself and ship out\nspecial colors.\u003c/p\u003e\n\u003cp\u003eThese are all designs that I made and actually use myself, they bring me joy\nknowing that I made just the thing that I wanted to exist and if you buy\nsomething I hope that it brings you this joy as well.\u003c/p\u003e\n\u003ch2 id=\"skateboard-wall-mount\"\u003eSkateboard Wall Mount \u003ca href=\"#skateboard-wall-mount\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve used these skateboard wall mounts for years, I have 5 in my office\nfeaturing new decks in the queue, and probably 10 in the garage to display used\ndecks, and fully assembled boards for me and my kids.  I use these for both\nregular popscicle boards and longboards, but if you are putting up a thicker\nlongboard go with the thicker size.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://teleportpod.com/portal/a47fd522-d265-43b9-a8b0-8fa2395f7c46?item=588\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f2654443-fd69-48a8-a151-0199d053b5a6.jpg\" alt=\"PXL_20250911_012148865.jpg\"/ data-glightbox=\"description: PXL_20250911_012148865.jpg\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teleportpod.com/portal/a47fd522-d265-43b9-a8b0-8fa2395f7c46?item=588\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003eregular size\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://teleportpod.com/portal/c6a85018-4ed3-4a34-98f3-cfb660d64bf5?item=589\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003eover size\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"mic-stand-clips\"\u003eMic stand Clips \u003ca href=\"#mic-stand-clips\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThese clips will hold your cables on your mic stand nicely and look nice while\ndoing it.  I’ve got them on both of my mic stands, there are two versions, one\nfor a smaller stand with usb cable, and one for a larger stand with an xlr\ncable make sure you measure your mic stand before buying.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5d6967bf-63cd-40d8-9d71-03eb90cc3fdd.jpg\" class=\"glightbox-link\" aria-label=\"13mm-xlr-cropped.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5d6967bf-63cd-40d8-9d71-03eb90cc3fdd.jpg\" alt=\"13mm-xlr-cropped.jpg\"/ data-glightbox=\"description: 13mm-xlr-cropped.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teleportpod.com/portal/0bf5a12c-47f3-4472-a3f7-70206546c3ec?item=618\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003e13mm stand | 6mm xlr cable\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/95717ce4-600a-4fd0-877a-8e926414e815.jpg\" class=\"glightbox-link\" aria-label=\"10-mm-usb.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/95717ce4-600a-4fd0-877a-8e926414e815.jpg\" alt=\"10-mm-usb.jpg\"/ data-glightbox=\"description: 10-mm-usb.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teleportpod.com/portal/8ebe3274-6445-44e9-b68e-0b4897e23e4a?item=619\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003e10mm stand | 4mm usb \u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"cat-door\"\u003eCat Door \u003ca href=\"#cat-door\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn our house we have a cat liter box in the basement, so we need to leave the\ndoor open for our cat.  But if our dog goes down there he seems to only cause\ntrouble.  So I modeled this door prop to leave the door just enough open for\nthe cat, but keep the dog out.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/01a33e73-7bdc-4bfe-842e-d83d77c856d2.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20250913_232149104.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/01a33e73-7bdc-4bfe-842e-d83d77c856d2.jpg\" alt=\"PXL_20250913_232149104.jpg\"/ data-glightbox=\"description: PXL_20250913_232149104.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://teleportpod.com/portal/f4500ce2-6f32-4773-a82a-e049a91b7da1?item=732\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003ecat door\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"kicker-ramp\"\u003eKicker Ramp \u003ca href=\"#kicker-ramp\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://teleportpod.com/portal/0d6283fc-889e-4445-b0fd-29e40cf82fca?item=521\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003ekicker ramp\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://teleportpod.com/portal/671a9184-b0ed-419c-9be3-8f3cb52657e3?item=520\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/teleportpod.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/teleportpod.com.png\" class=\"has-avatar  has-avatar-before\"\u003emanny pad\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI've been 3d printing for years, and create a lot of my own designs.  Many of\nthem are hyper specific to me, but for the ones that I think others might find\nuseful I will be putting up here for sale, you can buy prints that will show up\nto your door in a few days.  I'm leaning on the slant3d print farm so this\ndepends on your proximity to them.  The prints are typically black petg, if you\nwould like a different color reach out to me and I will see what other options\nwe have, or for an additional fee I can print it myself and ship out\nspecial colors.\n\nThese are all designs that I made and actually use myself, they bring me joy\nknowing that I made just the thing that I wanted to exist and if you buy\nsomething I hope that it brings you this joy as well.\n\n## Skateboard Wall Mount\n\nI've used these skateboard wall mounts for years, I have 5 in my office\nfeaturing new decks in the queue, and probably 10 in the garage to display used\ndecks, and fully assembled boards for me and my kids.  I use these for both\nregular popscicle boards and longboards, but if you are putting up a thicker\nlongboard go with the thicker size.\n\n[![PXL_20250911_012148865.jpg](https://dropper.waylonwalker.com/api/file/f2654443-fd69-48a8-a151-0199d053b5a6.jpg)](https://teleportpod.com/portal/a47fd522-d265-43b9-a8b0-8fa2395f7c46?item=588)\n\n* [regular size](https://teleportpod.com/portal/a47fd522-d265-43b9-a8b0-8fa2395f7c46?item=588)\n* [over size](https://teleportpod.com/portal/c6a85018-4ed3-4a34-98f3-cfb660d64bf5?item=589)\n\n## Mic stand Clips\n\nThese clips will hold your cables on your mic stand nicely and look nice while\ndoing it.  I've got them on both of my mic stands, there are two versions, one\nfor a smaller stand with usb cable, and one for a larger stand with an xlr\n  cable make sure you measure your mic stand before buying.\n\n![13mm-xlr-cropped.jpg](https://dropper.waylonwalker.com/api/file/5d6967bf-63cd-40d8-9d71-03eb90cc3fdd.jpg)\n\n* [13mm stand | 6mm xlr cable](https://teleportpod.com/portal/0bf5a12c-47f3-4472-a3f7-70206546c3ec?item=618)\n\n![10-mm-usb.jpg](https://dropper.waylonwalker.com/api/file/95717ce4-600a-4fd0-877a-8e926414e815.jpg)\n\n* [10mm stand | 4mm usb ](https://teleportpod.com/portal/8ebe3274-6445-44e9-b68e-0b4897e23e4a?item=619)\n\n\n## Cat Door\n\nIn our house we have a cat liter box in the basement, so we need to leave the\ndoor open for our cat.  But if our dog goes down there he seems to only cause\ntrouble.  So I modeled this door prop to leave the door just enough open for\nthe cat, but keep the dog out.\n\n![PXL_20250913_232149104.jpg](https://dropper.waylonwalker.com/api/file/01a33e73-7bdc-4bfe-842e-d83d77c856d2.jpg)\n\n* [cat door](https://teleportpod.com/portal/f4500ce2-6f32-4773-a82a-e049a91b7da1?item=732)\n\n## Kicker Ramp\n\n[kicker ramp](https://teleportpod.com/portal/0d6283fc-889e-4445-b0fd-29e40cf82fca?item=521)\n\n[manny pad](https://teleportpod.com/portal/671a9184-b0ed-419c-9be3-8f3cb52657e3?item=520)\n\n",
      "summary": "I've been 3d printing for years, and create a lot of my own designs. Many of them are hyper specific to me, but for the ones that I think others might find...",
      "date_published": "2025-09-10T20:38:00Z",
      "date_modified": "2025-09-10T20:38:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "store"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-832/",
      "url": "https://waylonwalker.com/thought-832/",
      "title": "💭 How To Become The BEST Engineer At Your Company - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Qc_kEyLsXH0\" title=\"How To Become The BEST Engineer At Your Company\" playlabel=\"Play: How To Become The BEST Engineer At Your Company\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWhen you fill all of your time with a bunch of other things, it becomes really hard to become a friendly person.  Prime talked about trying to learn how to drop the hurry in his life, and how to not always be in a frenzy of going from one thing to the next.  It’s something that puts us in a state that its hard to remember to be friendly.  Hard to remember that \u003ca href=\"https://www.youtube.com/watch?v=cPgMeKfQFq8\" 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\"\u003etheres always time for coffee\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eI do my best to always leave time for coffee, whether at home with my wife and kids, as well as at work.  I am in a very unique place at work where I have a rare set of skills for the industry I am in.  This comes with a lot of people insterested in how to do things like running data pipelines or managing server infrastructure.  I always take time for these conversations, I find them interesting, and useful.  Sometimes you end up with someone who asks the same questions every 6 months, other times, you have someone flourish from these conversations.  I’m not saying to take on work from every other team in the org, but giving 30 minutes to help mentor others can go a long ways.\u003c/p\u003e\n\u003cp\u003eI’m still not the best, I still get wrapped up in my own stuff just like prime calls out.  I sometimes get frustrated with others around me when things come up that prevent me from doing my work, or just getting the things out of my head that I had momentum on while the lightning was hot.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Qc_kEyLsXH0\" title=\"How To Become The BEST Engineer At Your Company\" playlabel=\"Play: How To Become The BEST Engineer At Your Company\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWhen you fill all of your time with a bunch of other things, it becomes really hard to become a friendly person.  Prime talked about trying to learn how to drop the hurry in his life, and how to not always be in a frenzy of going from one thing to the next.  It's something that puts us in a state that its hard to remember to be friendly.  Hard to remember that [theres always time for coffee](https://www.youtube.com/watch?v=cPgMeKfQFq8).\n\nI do my best to always leave time for coffee, whether at home with my wife and kids, as well as at work.  I am in a very unique place at work where I have a rare set of skills for the industry I am in.  This comes with a lot of people insterested in how to do things like running data pipelines or managing server infrastructure.  I always take time for these conversations, I find them interesting, and useful.  Sometimes you end up with someone who asks the same questions every 6 months, other times, you have someone flourish from these conversations.  I'm not saying to take on work from every other team in the org, but giving 30 minutes to help mentor others can go a long ways.\n\nI'm still not the best, I still get wrapped up in my own stuff just like prime calls out.  I sometimes get frustrated with others around me when things come up that prevent me from doing my work, or just getting the things out of my head that I had momentum on while the lightning was hot.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=Qc_kEyLsXH0",
      "date_published": "2025-09-10T16:08:36Z",
      "date_modified": "2025-09-10T16:08:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/skull-ant/",
      "url": "https://waylonwalker.com/shots/skull-ant/",
      "title": "Skull Ant",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/cb9dbf04-b1f6-4105-879d-86776cf11474.mp4\" class=\"glightbox-link\" aria-label=\"Skull Ant\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/cb9dbf04-b1f6-4105-879d-86776cf11474.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/cb9dbf04-b1f6-4105-879d-86776cf11474.mp4\" type=\"video/mp4\"\u003eSkull Ant\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSkull Ant\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Skull Ant](https://dropper.waylonwalker.com/file/cb9dbf04-b1f6-4105-879d-86776cf11474.mp4)\n\n\u003e Skull Ant\n",
      "summary": "Skull Ant",
      "image": "https://dropper.waylonwalker.com/file/cb9dbf04-b1f6-4105-879d-86776cf11474.mp4",
      "date_published": "2025-09-08T08:30:50Z",
      "date_modified": "2025-09-08T08:30:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/uv-script-management/",
      "url": "https://waylonwalker.com/uv-script-management/",
      "title": "uv script management",
      "content_html": "\u003cp\u003eI’ve been leaning on\n\u003ca href=\"https://treyhunner.com/2024/12/lazy-self-installing-python-scripts-with-uv/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/treyhunner.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/treyhunner.com.png\" class=\"has-avatar  has-avatar-before\"\u003elazy-self-installing-python-scripts\u003c/a\u003e\nmore and more, but I did not realize how much tooling that\n\u003ca href=\"https://docs.astral.sh/uv/getting-started/installation/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.astral.sh.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.astral.sh.png\" class=\"has-avatar  has-avatar-before\"\u003euv\u003c/a\u003e\ngives you to help manage your scripts.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv init --script up\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv add --script up typer rich\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euv remove --script up rich\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esed -i \u003cspan class=\"s1\"\u003e\u0026#39;1i #!/usr/bin/env -S uv run --script\u0026#39;\u003c/span\u003e up\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echmod +x up\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e./up\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe result is a script that looks like this, its executable as what looks like\nregular command in your shell.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ch\"\u003e#!/usr/bin/env -S uv run --script\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# /// script\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# requires-python = \u0026#34;\u0026gt;=3.13\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# dependencies = [\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#34;typer\u0026#34;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ///\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003emain\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Hello from up!\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emain\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\nI've been leaning on\n[lazy-self-installing-python-scripts](https://treyhunner.com/2024/12/lazy-self-installing-python-scripts-with-uv/)\nmore and more, but I did not realize how much tooling that\n[uv](https://docs.astral.sh/uv/getting-started/installation/)\ngives you to help manage your scripts.\n\n``` bash\nuv init --script up\nuv add --script up typer rich\nuv remove --script up rich\nsed -i '1i #!/usr/bin/env -S uv run --script' up\nchmod +x up\n./up\n```\n\nThe result is a script that looks like this, its executable as what looks like\nregular command in your shell.\n\n``` python\n#!/usr/bin/env -S uv run --script\n# /// script\n# requires-python = \"\u003e=3.13\"\n# dependencies = [\n#     \"typer\",\n# ]\n# ///\n\n\ndef main() -\u003e None:\n    print(\"Hello from up!\")\n\n\nif __name__ == \"__main__\":\n    main()\n```\n",
      "summary": "I've been leaning on lazy-self-installing-python-scripts more and more, but I did not realize how much tooling that uv gives you to help manage your scripts.",
      "date_published": "2025-09-07T20:22:56Z",
      "date_modified": "2025-09-07T20:22:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-829/",
      "url": "https://waylonwalker.com/thought-829/",
      "title": "💭 Ben Dicken on X: \"I am once again begging you to put your data...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/BenjDicken/status/1963998076198105475\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a really great animation of latency across different aws regions based on us-east-1.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/BenjDicken/status/1963998076198105475\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a really great animation of latency across different aws regions based on us-east-1.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/BenjDicken/status/1963998076198105475",
      "date_published": "2025-09-05T23:45:00Z",
      "date_modified": "2025-09-05T23:45:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "aws",
        "cloud",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/silkspeer/",
      "url": "https://waylonwalker.com/shots/silkspeer/",
      "title": "Silkspeer",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/34154168-6fcc-4680-b830-514731613e29.mp4\" class=\"glightbox-link\" aria-label=\"Silkspeer\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/34154168-6fcc-4680-b830-514731613e29.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/34154168-6fcc-4680-b830-514731613e29.mp4\" type=\"video/mp4\"\u003eSilkspeer\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eSilkspeer\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Silkspeer](https://dropper.waylonwalker.com/file/34154168-6fcc-4680-b830-514731613e29.mp4)\n\n\u003e Silkspeer\n",
      "summary": "Silkspeer",
      "image": "https://dropper.waylonwalker.com/file/34154168-6fcc-4680-b830-514731613e29.mp4",
      "date_published": "2025-09-05T17:39:38Z",
      "date_modified": "2025-09-05T17:39:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/berry-picking/",
      "url": "https://waylonwalker.com/shots/berry-picking/",
      "title": "Berry Picking",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/file/1568f7ee-a9fd-4176-b4ea-7e3316474184.mp4\" class=\"glightbox-link\" aria-label=\"Berry Picking\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/file/1568f7ee-a9fd-4176-b4ea-7e3316474184.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/file/1568f7ee-a9fd-4176-b4ea-7e3316474184.mp4\" type=\"video/mp4\"\u003eBerry Picking\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBerry Picking\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Berry Picking](https://dropper.waylonwalker.com/file/1568f7ee-a9fd-4176-b4ea-7e3316474184.mp4)\n\n\u003e Berry Picking\n",
      "summary": "Berry Picking",
      "image": "https://dropper.waylonwalker.com/file/1568f7ee-a9fd-4176-b4ea-7e3316474184.mp4",
      "date_published": "2025-09-05T17:38:26Z",
      "date_modified": "2025-09-05T17:38:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight-silksong",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-828/",
      "url": "https://waylonwalker.com/thought-828/",
      "title": "💭 Hollow Knight: Silksong is breaking Steam, Nintendo’s eShop - ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://arstechnica.com/gaming/2025/09/hollow-knight-silksong-is-breaking-steam/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.arstechnica.net/wp-content/uploads/2025/09/steamerror-1152x648-1757001087.jpg\" alt=\"Hollow Knight: Silksong is breaking Steam, Nintendo’s eShop — Valve\u0026#39;s usually stable platform struggles thanks in part to lack of pre-loading options.\" loading=\"lazy\"/ data-glightbox=\"description: Hollow Knight: Silksong is breaking Steam, Nintendo’s eShop — Valve\u0026#39;s usually stable platform struggles thanks in part to lack of pre-loading options.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHollow Knight: Silksong is breaking Steam, Nintendo’s eShop\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eValve\u0026#39;s usually stable platform struggles thanks in part to lack of pre-loading options.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eArs Technica · arstechnica.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eOnly 1 hour into the release of silksong, and it’s taken down all of the eshops, and steamdb dows 100K concurrent players.  The Humble store ran out of steam keys for silksong already.\u003c/p\u003e\n\u003cp\u003eYou guys better not break this thing before I get off work and My son gets home cause we are playing this tonight!!\u003c/p\u003e\n\u003cp\u003eI just Check \u003ca href=\"https://steamdb.info/app/1030300/charts/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/steamdb.info.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/steamdb.info.ico\" class=\"has-avatar  has-avatar-before\"\u003esteamDB\u003c/a\u003e, and they have 441K concurrent players right now.  An Indie game!  This shows when you treat your fans right and make something incredible they stand behind you.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://arstechnica.com/gaming/2025/09/hollow-knight-silksong-is-breaking-steam/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.arstechnica.net/wp-content/uploads/2025/09/steamerror-1152x648-1757001087.jpg\" alt=\"Hollow Knight: Silksong is breaking Steam, Nintendo’s eShop — Valve\u0026#39;s usually stable platform struggles thanks in part to lack of pre-loading options.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHollow Knight: Silksong is breaking Steam, Nintendo’s eShop\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eValve\u0026#39;s usually stable platform struggles thanks in part to lack of pre-loading options.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eArs Technica \u0026middot; arstechnica.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nOnly 1 hour into the release of silksong, and it's taken down all of the eshops, and steamdb dows 100K concurrent players.  The Humble store ran out of steam keys for silksong already.\n\nYou guys better not break this thing before I get off work and My son gets home cause we are playing this tonight!!\n\nI just Check [steamDB](https://steamdb.info/app/1030300/charts/), and they have 441K concurrent players right now.  An Indie game!  This shows when you treat your fans right and make something incredible they stand behind you.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://arstechnica.com/gaming/2025/09/hollow-knight-silksong-is-breaking-steam/",
      "date_published": "2025-09-04T17:20:03Z",
      "date_modified": "2025-09-04T17:20:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-827/",
      "url": "https://waylonwalker.com/thought-827/",
      "title": "💭 Chris Coyier",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/09/02/12693/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://s0.wp.com/_si/?t=eyJpbWciOiJodHRwczpcL1wvaTAud3AuY29tXC9jaHJpc2NveWllci5uZXRcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjFcLzA3XC9Jc1VJU3ZBcV80MDB4NDAwLmpwZz9maXQ9NDAwJTJDNDAwJnNzbD0xIiwidHh0IjoiQ2hyaXMgQ295aWVyIiwidGVtcGxhdGUiOiJlZGdlIiwiZm9udCI6IiIsImJsb2dfaWQiOjc0MDc0MjQ4fQ.bvKLReBBKcA57TVb4-g9yEs2QdY7VFEGHqUPK_9OQuAMQ\" alt=\"— Trump says: With this order, I am announcing “America by Design,” a national initiative to improve experiences for Americans, starting by breathing new life into the design of sites where people in…\" loading=\"lazy\"/ data-glightbox=\"description: — Trump says: With this order, I am announcing “America by Design,” a national initiative to improve experiences for Americans, starting by breathing new life into the design of sites where people in…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e \u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTrump says: With this order, I am announcing “America by Design,” a national initiative to improve experiences for Americans, starting by breathing new life into the design of sites where peopl...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier · chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eEverything is becoming political these days!  I hate it.  I regularly hear a friend say these podcasts need to set the politics to the side, but you know what its fukin hard when the gov is upending every corner  of life and rebranding it with their own new twist.  The billionaire class is winning and it looks like there ain’t a thing we can do about it.  Here’s another example of someone taking head of an office they have no business being in.  An entire set of working class folks let go for this guy to take over.  And what does he want to do, make govt services as satisfying as apple.  Apple is cutting edge, it is not something that is one bit sustainable.  Their launch sites are generally super heavy, hard to scroll, slow, over animated, but damn they are satisfying the first time you scroll through them, after that just let me through.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/09/02/12693/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://s0.wp.com/_si/?t=eyJpbWciOiJodHRwczpcL1wvaTAud3AuY29tXC9jaHJpc2NveWllci5uZXRcL3dwLWNvbnRlbnRcL3VwbG9hZHNcLzIwMjFcLzA3XC9Jc1VJU3ZBcV80MDB4NDAwLmpwZz9maXQ9NDAwJTJDNDAwJnNzbD0xIiwidHh0IjoiQ2hyaXMgQ295aWVyIiwidGVtcGxhdGUiOiJlZGdlIiwiZm9udCI6IiIsImJsb2dfaWQiOjc0MDc0MjQ4fQ.bvKLReBBKcA57TVb4-g9yEs2QdY7VFEGHqUPK_9OQuAMQ\" alt=\"— Trump says: With this order, I am announcing “America by Design,” a national initiative to improve experiences for Americans, starting by breathing new life into the design of sites where people in…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e \u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTrump says: With this order, I am announcing “America by Design,” a national initiative to improve experiences for Americans, starting by breathing new life into the design of sites where peopl...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier \u0026middot; chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nEverything is becoming political these days!  I hate it.  I regularly hear a friend say these podcasts need to set the politics to the side, but you know what its fukin hard when the gov is upending every corner  of life and rebranding it with their own new twist.  The billionaire class is winning and it looks like there ain't a thing we can do about it.  Here's another example of someone taking head of an office they have no business being in.  An entire set of working class folks let go for this guy to take over.  And what does he want to do, make govt services as satisfying as apple.  Apple is cutting edge, it is not something that is one bit sustainable.  Their launch sites are generally super heavy, hard to scroll, slow, over animated, but damn they are satisfying the first time you scroll through them, after that just let me through.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://chriscoyier.net/2025/09/02/12693/",
      "date_published": "2025-09-04T01:43:39Z",
      "date_modified": "2025-09-04T01:43:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-826/",
      "url": "https://waylonwalker.com/thought-826/",
      "title": "💭 Home",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://lospec.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.lospec.com/static/images/og-image-default.png\" alt=\"Home — Free online tools for people creating pixel art and other low-spec art.\" loading=\"lazy\"/ data-glightbox=\"description: Home — Free online tools for people creating pixel art and other low-spec art.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHome\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFree online tools for people creating pixel art and other low-spec art.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLospec · lospec.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eMy son introduced me to lospec.com, It has a great set of color palettes and amazing pixel art inspiration.  I particularly liked \u003ca href=\"https://lospec.com/palette-list/royal-armoury\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/lospec.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/lospec.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eroyal armoury\u003c/a\u003e and  of course I’m a bit partial to \u003ca href=\"https://lospec.com/palette-list/hollow\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/lospec.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/lospec.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehollow\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://lospec.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.lospec.com/static/images/og-image-default.png\" alt=\"Home — Free online tools for people creating pixel art and other low-spec art.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHome\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFree online tools for people creating pixel art and other low-spec art.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eLospec \u0026middot; lospec.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nMy son introduced me to lospec.com, It has a great set of color palettes and amazing pixel art inspiration.  I particularly liked [royal armoury](https://lospec.com/palette-list/royal-armoury) and  of course I'm a bit partial to [hollow](https://lospec.com/palette-list/hollow).\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://lospec.com/",
      "date_published": "2025-09-04T01:36:40Z",
      "date_modified": "2025-09-04T01:36:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gamedev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-825/",
      "url": "https://waylonwalker.com/thought-825/",
      "title": "💭 GPT-5 + Codex is so fast that when I… | justin․searls․co",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justin.searls.co/takes/2025-09-03-14h21m54s/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://justin.searls.co/img/face.jpg\" alt=\"Justin Searls\n@searls — \nGPT-5 + Codex is so fast that when I expressed suspicion that a script was returning too few results (via `| wc -l`), Codex corrected me that I should have passed `--count` instead. Sure enough, that worked.\n\u0026lt;p\u0026gt;Checked git status and realized Codex implemented the \u0026lt;code\u0026gt;--count\u0026lt;/code\u0026gt; flag in the script \u0026lt;em\u0026gt;concurrently as it corrected me\u0026lt;/em\u0026gt; for not having used it! Gaslit by a robot!\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Justin Searls\n@searls — \nGPT-5 + Codex is so fast that when I expressed suspicion that a script was returning too few results (via `| wc -l`), Codex corrected me that I should have passed `--count` instead. Sure enough, that worked.\n\u0026lt;p\u0026gt;Checked git status and realized Codex implemented the \u0026lt;code\u0026gt;--count\u0026lt;/code\u0026gt; flag in the script \u0026lt;em\u0026gt;concurrently as it corrected me\u0026lt;/em\u0026gt; for not having used it! Gaslit by a robot!\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eJustin Searls\n@searls\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003e\nGPT-5 + Codex is so fast that when I expressed suspicion that a script was returning too few results (via \u003ccode\u003e| wc -l\u003c/code\u003e), Codex corrected me that I should have passed \u003ccode\u003e--count\u003c/code\u003e instead. Sure enough, t…\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003ejustin․searls․co · justin.searls.co\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is hilarious, the llm shames him for not utilizing the \u003ccode\u003e--count\u003c/code\u003e flag, THAT DIDN’T EXIST WHEN HE RAN THE CLI!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justin.searls.co/takes/2025-09-03-14h21m54s/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://justin.searls.co/img/face.jpg\" alt=\"Justin Searls\n@searls — \nGPT-5 + Codex is so fast that when I expressed suspicion that a script was returning too few results (via `| wc -l`), Codex corrected me that I should have passed `--count` instead. Sure enough, that worked.\n\nChecked git status and realized Codex implemented the `--count` flag in the script _concurrently as it corrected me_ for not having used it! Gaslit by a robot!\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eJustin Searls\n@searls\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e\nGPT-5 + Codex is so fast that when I expressed suspicion that a script was returning too few results (via `| wc -l`), Codex corrected me that I should have passed `--count` instead. Sure enough, t...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustin․searls․co \u0026middot; justin.searls.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is hilarious, the llm shames him for not utilizing the `--count` flag, THAT DIDN'T EXIST WHEN HE RAN THE CLI!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://justin.searls.co/takes/2025-09-03-14h21m54s/",
      "date_published": "2025-09-03T19:27:01Z",
      "date_modified": "2025-09-03T19:27:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-824/",
      "url": "https://waylonwalker.com/thought-824/",
      "title": "💭 Vibe code is legacy code | Val Town Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.val.town/vibe-code\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://blog.val.town/og-image.png?title=Vibe+code+is+legacy+code\" alt=\"Vibe code is legacy code — Updates and articles from the Val Town team\" loading=\"lazy\"/ data-glightbox=\"description: Vibe code is legacy code — Updates and articles from the Val Town team\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eVibe code is legacy code\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUpdates and articles from the Val Town team\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.val.town\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eBrilliantly said.  \u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003eVibe coding\u003c/a\u003e is legacy code.  It’s code that we forget exists.  Code that no one touches, you replace it.  If you touch it you are more likely to break it.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe worst possible situation is to have a non-programmer vibe code a large project that they intend to maintain. This would be the equivalent of giving a credit card to a child without first explaining the concept of debt.\u003c/p\u003e\n\u003cp\u003eAs you can imagine, the first phase is ecstatic. I can wave this little piece of plastic in stores and take whatever I want! …\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eRead more in the full \u003ca href=\"https://blog.val.town/vibe-code\"\u003epost\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.val.town/vibe-code\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://blog.val.town/og-image.png?title=Vibe+code+is+legacy+code\" alt=\"Vibe code is legacy code — Updates and articles from the Val Town team\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eVibe code is legacy code\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUpdates and articles from the Val Town team\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.val.town\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nBrilliantly said.  Vibe coding is legacy code.  It's code that we forget exists.  Code that no one touches, you replace it.  If you touch it you are more likely to break it.\n\n\u003e The worst possible situation is to have a non-programmer vibe code a large project that they intend to maintain. This would be the equivalent of giving a credit card to a child without first explaining the concept of debt.\n\u003e\n\u003e As you can imagine, the first phase is ecstatic. I can wave this little piece of plastic in stores and take whatever I want! ...\n\nRead more in the full [post](https://blog.val.town/vibe-code)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.val.town/vibe-code",
      "date_published": "2025-09-03T02:14:45Z",
      "date_modified": "2025-09-03T02:14:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "dev",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/when-to-vibe-code/",
      "url": "https://waylonwalker.com/when-to-vibe-code/",
      "title": "When To Vibe Code",
      "content_html": "\u003cp\u003eI enjoyed this post from Theo and think it deserves re-iterated, revisited, and\nto remind myself of some of these things.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtu.be/6TMPWvPG5GA?si=guQem4R8dLOMBntP\u0026amp;t=1356\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtu.be/6TMPWvPG5GA?si=guQem4R8dLOMBntP\u0026amp;t=1356\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"the-skillread-spectrum\"\u003eThe skill/read spectrum \u003ca href=\"#the-skillread-spectrum\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/209e62d2-4687-4ce0-880b-c7375867f616.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-03T00-32-08-321Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/209e62d2-4687-4ce0-880b-c7375867f616.png\" alt=\"screenshot-2025-09-03T00-32-08-321Z.png\"/ data-glightbox=\"description: screenshot-2025-09-03T00-32-08-321Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe first diagram describes that there has become a spectrum of agentic coding\nfrom \u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003evibe coding\u003c/a\u003e where you don’t ready anything, to looking at everything in\ndetail, across a group of people who don’t have a clue what the code says to\npeople who could do it way better if they took the time.\u003c/p\u003e\n\u003ch3 id=\"the-importance-spectrum\"\u003eThe importance spectrum \u003ca href=\"#the-importance-spectrum\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eHe argues here that its ok to bounce between A,B, and D, but C becomes\ndangerous.  I’d argue that he brought up a 3rd spectrum that is important later\non, “how critical is this”.  I think the I don’t know, don’t care, didn’t read,\nbut the thing did its job is quite fine, but don’t know, don’t care, mission\ncritical is the main issue we are seeing with agentic coding, primarily in the\ndidn’t read but critical Zone.\u003c/p\u003e\n\u003ch2 id=\"the-rules\"\u003eThe Rules \u003ca href=\"#the-rules\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is the list that prompted this post, I think it serves as a good reminder\nwhen you should care a bit more.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3093511a-f1fd-49cb-8152-bc6c60cc80e2.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-03T00-24-17-121Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3093511a-f1fd-49cb-8152-bc6c60cc80e2.png\" alt=\"screenshot-2025-09-03T00-24-17-121Z.png\"/ data-glightbox=\"description: screenshot-2025-09-03T00-24-17-121Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"you-still-need-to-know-how-code-works-if-you-want-to-be-a-coder\"\u003eYou still need to know how code works if you want to be a coder \u003ca href=\"#you-still-need-to-know-how-code-works-if-you-want-to-be-a-coder\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you want to get good, you need to put in the reps, do the practice, learn to\ndebug the strange looking error messages and not just pass them to ChatGPT.\u003c/p\u003e\n\u003ch2 id=\"theres-a-lot-of-code-worth-having-that-is-not-worth-writing-or-reading\"\u003eThere’s a lot of code worth having that is not worth writing or reading \u003ca href=\"#theres-a-lot-of-code-worth-having-that-is-not-worth-writing-or-reading\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs professionals we have a lot of code that we read more than we write, will\nget executed millions of times over the next 10 years that its in service, pay\nclose attention to this and probably set aside the llm.\u003c/p\u003e\n\u003cp\u003eWe also write a lot of that is ran only a few times, maybe its a special\nreport, or a shell script to bootstrap something.  It might be a POC service\nthat you build out only ever on your machine, you get your idea out in front of\nusers or try it yourself and find the mistakes before you spend weeks building\nit yourself.\u003c/p\u003e\n\u003ch2 id=\"you-cant-be-mad-at-vibe-coding-and-be-mad-at-left-pad\"\u003eyou can’t be mad at vibe coding AND be mad at left-pad \u003ca href=\"#you-cant-be-mad-at-vibe-coding-and-be-mad-at-left-pad\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis one is interesting that he was very strongly for.  The idea is that no one\never reads the code from libraries they use, or the diffs of new versions\n(outside of google where everything is literally vendored into the monolith).\nIf you don’t care about all of those dependencies, you cannot get mad at vibe\ncoding.\u003c/p\u003e\n\u003cp\u003eI’ll argue here a smidge, but I agree with the premiss.  Left-pad was probably\nwritten by someone smarter than average.  It was definitely used by \u003cstrong\u003efar\u003c/strong\u003e\nmore people and projects, therefore was battle tested to no end.  This was the\nreal reason this stuff got in everywhere.  People are probably not good enough\nto catch all the odd edge cases for \u003ccode\u003ejs\u003c/code\u003e, especially if front end is not their\nspecialty.\u003c/p\u003e\n\u003ch2 id=\"vibe-code-is-a-type-of-legacy-codehttpsblogvaltownvibe-code\"\u003e\u003ca href=\"https://blog.val.town/vibe-code\"\u003eVibe code is a type of legacy code\u003c/a\u003e \u003ca href=\"#vibe-code-is-a-type-of-legacy-codehttpsblogvaltownvibe-code\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVibe coding is a type of legacy code, but as a type of debt that we opt into,\nnot one that has accumulated over time and we have opted not to take care of.\nBoth are types of code that no one reads, no one remembers existed.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhen someone needs to change legacy code they don’t, they take a hammer to it\nand rewrite it from scratch.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"if-the-tools-are-better-than-you-stop-using-them\"\u003eIf the tools are better than you, stop using them \u003ca href=\"#if-the-tools-are-better-than-you-stop-using-them\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTheo has a good example here.  Critial business components to his businesses\nhave switched to using \u003ccode\u003eEffect\u003c/code\u003e.  It solves async issues with ease, but melts\nthe brain of anyone seeing it for the first time.  He admits that he does not\ncode as much anymore and thus he sucks at it, but knows that if he is ever to\nlearn it one bit he must turn off the LLM and put in the work to do it himself.\u003c/p\u003e\n\u003cp\u003eYou will not get any better at this by copy pasting from ChatGPT.  It is too\neasy to put your brain aside, paste error messages, and copy the reponse in. Or\nworse with agents tell them \u003ccode\u003efix this\u003c/code\u003e.  Unlike the days of Stack Overflow, you\nhad to understand your problem well enough to search it.  You had to understand\nthe answers enough to integrate the solution, you had to understand if the\nsolution was even for your problem in the first place.  There was much more\nbrain work that had to happen even then when the answers were basically given\nto you.\u003c/p\u003e\n\u003ch2 id=\"fin\"\u003eFin \u003ca href=\"#fin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLastly Theo does not bring this rule, up, but if you are writing text for\nhumans to read, you shall not copy paste from ChatGPT without thoroughly\nediting and reading for yourself first, this is considered \u003ca href=\"/ai-slop/\" class=\"wikilink\" data-title=\"Ai Slop\" data-description=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\" data-date=\"2025-08-05\" data-preview=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\"\u003eAi Slop\u003c/a\u003e and\nyou should be ashamed.\u003c/p\u003e\n",
      "content_text": "\nI enjoyed this post from Theo and think it deserves re-iterated, revisited, and\nto remind myself of some of these things.\n\n\u003chttps://youtu.be/6TMPWvPG5GA?si=guQem4R8dLOMBntP\u0026t=1356\u003e\n\n## The skill/read spectrum\n\n![screenshot-2025-09-03T00-32-08-321Z.png](https://dropper.waylonwalker.com/api/file/209e62d2-4687-4ce0-880b-c7375867f616.png)\n\nThe first diagram describes that there has become a spectrum of agentic coding\nfrom vibe coding where you don't ready anything, to looking at everything in\ndetail, across a group of people who don't have a clue what the code says to\npeople who could do it way better if they took the time.\n\n### The importance spectrum\n\nHe argues here that its ok to bounce between A,B, and D, but C becomes\ndangerous.  I'd argue that he brought up a 3rd spectrum that is important later\non, \"how critical is this\".  I think the I don't know, don't care, didn't read,\nbut the thing did its job is quite fine, but don't know, don't care, mission\ncritical is the main issue we are seeing with agentic coding, primarily in the\ndidn't read but critical Zone.\n\n## The Rules\n\nThis is the list that prompted this post, I think it serves as a good reminder\nwhen you should care a bit more.\n\n![screenshot-2025-09-03T00-24-17-121Z.png](https://dropper.waylonwalker.com/api/file/3093511a-f1fd-49cb-8152-bc6c60cc80e2.png)\n\n## You still need to know how code works if you want to be a coder\n\nIf you want to get good, you need to put in the reps, do the practice, learn to\ndebug the strange looking error messages and not just pass them to ChatGPT.\n\n## There's a lot of code worth having that is not worth writing or reading\n\nAs professionals we have a lot of code that we read more than we write, will\nget executed millions of times over the next 10 years that its in service, pay\nclose attention to this and probably set aside the llm.\n\nWe also write a lot of that is ran only a few times, maybe its a special\nreport, or a shell script to bootstrap something.  It might be a POC service\nthat you build out only ever on your machine, you get your idea out in front of\nusers or try it yourself and find the mistakes before you spend weeks building\nit yourself.\n\n## you can't be mad at vibe coding AND be mad at left-pad\n\nThis one is interesting that he was very strongly for.  The idea is that no one\never reads the code from libraries they use, or the diffs of new versions\n(outside of google where everything is literally vendored into the monolith).\nIf you don't care about all of those dependencies, you cannot get mad at vibe\ncoding.\n\nI'll argue here a smidge, but I agree with the premiss.  Left-pad was probably\nwritten by someone smarter than average.  It was definitely used by **far**\nmore people and projects, therefore was battle tested to no end.  This was the\nreal reason this stuff got in everywhere.  People are probably not good enough\nto catch all the odd edge cases for `js`, especially if front end is not their\nspecialty.\n\n## [Vibe code is a type of legacy code](https://blog.val.town/vibe-code)\n\nVibe coding is a type of legacy code, but as a type of debt that we opt into,\nnot one that has accumulated over time and we have opted not to take care of.\nBoth are types of code that no one reads, no one remembers existed.\n\n\u003e When someone needs to change legacy code they don't, they take a hammer to it\n\u003e and rewrite it from scratch.\n\n## If the tools are better than you, stop using them\n\nTheo has a good example here.  Critial business components to his businesses\nhave switched to using `Effect`.  It solves async issues with ease, but melts\nthe brain of anyone seeing it for the first time.  He admits that he does not\ncode as much anymore and thus he sucks at it, but knows that if he is ever to\nlearn it one bit he must turn off the LLM and put in the work to do it himself.\n\nYou will not get any better at this by copy pasting from ChatGPT.  It is too\neasy to put your brain aside, paste error messages, and copy the reponse in. Or\nworse with agents tell them `fix this`.  Unlike the days of Stack Overflow, you\nhad to understand your problem well enough to search it.  You had to understand\nthe answers enough to integrate the solution, you had to understand if the\nsolution was even for your problem in the first place.  There was much more\nbrain work that had to happen even then when the answers were basically given\nto you.\n\n## Fin\n\nLastly Theo does not bring this rule, up, but if you are writing text for\nhumans to read, you shall not copy paste from ChatGPT without thoroughly\nediting and reading for yourself first, this is considered \u003ca href=\"/ai-slop/\" class=\"wikilink\" data-title=\"Ai Slop\" data-description=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\" data-date=\"2025-08-05\"\u003eAi Slop\u003c/a\u003e and\nyou should be ashamed.\n",
      "summary": "I enjoyed this post from Theo and think it deserves re-iterated, revisited, and to remind myself of some of these things.",
      "date_published": "2025-09-02T19:44:20Z",
      "date_modified": "2025-09-02T19:44:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-823/",
      "url": "https://waylonwalker.com/thought-823/",
      "title": "💭 Rich Pixels",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Sep/2/rich-pixels/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://static.simonwillison.net/static/2025/pixel-storehouse.jpg\" alt=\"Rich Pixels — Neat Python library by Darren Burns adding pixel image support to the Rich terminal library, using tricks to render an image using full or half-height colored blocks. Here\u0026#39;s the key …\" loading=\"lazy\"/ data-glightbox=\"description: Rich Pixels — Neat Python library by Darren Burns adding pixel image support to the Rich terminal library, using tricks to render an image using full or half-height colored blocks. Here\u0026#39;s the key …\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRich Pixels\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNeat Python library by Darren Burns adding pixel image support to the Rich terminal library, using tricks to render an image using full or half-height colored blocks. Here\u0026#39;s the key …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI saw this post from Simon and I had to give it a go and got some pretty good results.  His script is a small cli wrapper around Darren Burns’s \u003ca href=\"https://github.com/darrenburns/rich-pixels\" 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\"\u003eRich Pixels\u003c/a\u003e.  It works well even through tmux, since there is no terminal magic, just unicode blocks.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/024bf3e0-9c38-4c1e-ad5c-ed0156c9a99b.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-02T13-39-25-710Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/024bf3e0-9c38-4c1e-ad5c-ed0156c9a99b.png\" alt=\"screenshot-2025-09-02T13-39-25-710Z.png\"/ data-glightbox=\"description: screenshot-2025-09-02T13-39-25-710Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4bf522eb-4207-4a23-b5d0-626cefc8bdca.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-02T13-40-22-890Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4bf522eb-4207-4a23-b5d0-626cefc8bdca.png\" alt=\"screenshot-2025-09-02T13-40-22-890Z.png\"/ data-glightbox=\"description: screenshot-2025-09-02T13-40-22-890Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d061e85f-98cf-4b3c-871c-e01611022b44.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-02T13-41-39-775Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d061e85f-98cf-4b3c-871c-e01611022b44.png\" alt=\"screenshot-2025-09-02T13-41-39-775Z.png\"/ data-glightbox=\"description: screenshot-2025-09-02T13-41-39-775Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eSome not so good, and needed the terminal font size cranked up.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a532f113-185e-44ef-bcf8-30eed7e3f62a.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-02T13-38-16-641Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a532f113-185e-44ef-bcf8-30eed7e3f62a.png\" alt=\"screenshot-2025-09-02T13-38-16-641Z.png\"/ data-glightbox=\"description: screenshot-2025-09-02T13-38-16-641Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a66d4d7a-975d-4909-88a2-3761e2d3348f.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-09-02T13-38-46-814Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a66d4d7a-975d-4909-88a2-3761e2d3348f.png\" alt=\"screenshot-2025-09-02T13-38-46-814Z.png\"/ data-glightbox=\"description: screenshot-2025-09-02T13-38-46-814Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Sep/2/rich-pixels/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://static.simonwillison.net/static/2025/pixel-storehouse.jpg\" alt=\"Rich Pixels — Neat Python library by Darren Burns adding pixel image support to the Rich terminal library, using tricks to render an image using full or half-height colored blocks. Here\u0026#39;s the key …\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRich Pixels\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNeat Python library by Darren Burns adding pixel image support to the Rich terminal library, using tricks to render an image using full or half-height colored blocks. Here\u0026#39;s the key …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI saw this post from Simon and I had to give it a go and got some pretty good results.  His script is a small cli wrapper around Darren Burns's [Rich Pixels](https://github.com/darrenburns/rich-pixels).  It works well even through tmux, since there is no terminal magic, just unicode blocks.\n\n![screenshot-2025-09-02T13-39-25-710Z.png](https://dropper.waylonwalker.com/api/file/024bf3e0-9c38-4c1e-ad5c-ed0156c9a99b.png)\n\n![screenshot-2025-09-02T13-40-22-890Z.png](https://dropper.waylonwalker.com/api/file/4bf522eb-4207-4a23-b5d0-626cefc8bdca.png)\n\n![screenshot-2025-09-02T13-41-39-775Z.png](https://dropper.waylonwalker.com/api/file/d061e85f-98cf-4b3c-871c-e01611022b44.png)\n\nSome not so good, and needed the terminal font size cranked up.\n\n![screenshot-2025-09-02T13-38-16-641Z.png](https://dropper.waylonwalker.com/api/file/a532f113-185e-44ef-bcf8-30eed7e3f62a.png)\n\n![screenshot-2025-09-02T13-38-46-814Z.png](https://dropper.waylonwalker.com/api/file/a66d4d7a-975d-4909-88a2-3761e2d3348f.png)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Sep/2/rich-pixels/#atom-everything",
      "date_published": "2025-09-02T13:43:58Z",
      "date_modified": "2025-09-02T13:43:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/nvim-delete-current-file/",
      "url": "https://waylonwalker.com/nvim-delete-current-file/",
      "title": "nvim delete current file",
      "content_html": "\u003cp\u003eThis one is one that I’ve been using quite often, I did’t have a hotkey for it,\nI just used the \u003ccode\u003erm\u003c/code\u003e shell command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e!!\u003c/span\u003e\u003cspan class=\"nx\"\u003erm\u003c/span\u003e %\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eTAB\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWhen you type \u003ccode\u003e!!\u003c/code\u003e from normal mode it will automatically put you in command\nmode with \u003ccode\u003e.!\u003c/code\u003e pre-filled, then you just type \u003ccode\u003erm \u003c/code\u003e and \u003ccode\u003e\u0026lt;TAB\u0026gt;\u003c/code\u003e to\nauto-complete the current file name, and \u003ccode\u003e\u0026lt;CR\u0026gt;\u003c/code\u003e to execute the command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e.\u003cspan class=\"p\"\u003e!\u003c/span\u003e\u003cspan class=\"nx\"\u003erm\u003c/span\u003e %\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eTAB\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;\u003c/span\u003e\u003cspan class=\"nx\"\u003eCR\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"making-it-better\"\u003eMaking it better \u003ca href=\"#making-it-better\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe one quirk that I don’t like about this is that the buffer remains open\nafter deleting, and sometimes I forget to close it and end up re-creating it by\nmistake when running \u003ccode\u003e:wall\u003c/code\u003e or \u003ccode\u003e:xall\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eCreate a \u003ccode\u003eDeleteFile\u003c/code\u003e command with vim command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003ecommand\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e \u003cspan class=\"nx\"\u003eDeleteFile\u003c/span\u003e \u003cspan class=\"k\"\u003eexecute\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;!rm %\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e \u003cspan class=\"nx\"\u003ebdelete\u003c/span\u003e\u003cspan class=\"p\"\u003e!\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eCreate a \u003ccode\u003eDeleteFile\u003c/code\u003e command with lua.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003evim.api\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003envim_create_user_command\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"s1\"\u003e\u0026#39;DeleteFile\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003efunction\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e-- Delete the current file from disk\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003evim.cmd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;!rm %\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e-- Close the buffer without saving\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003evim.cmd\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;bdelete!\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"kr\"\u003eend\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e{}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nThis one is one that I've been using quite often, I did't have a hotkey for it,\nI just used the `rm` shell command.\n\n``` vim\n!!rm %\u003cTAB\u003e\u003cCR\u003e\n```\n\nWhen you type `!!` from normal mode it will automatically put you in command\nmode with `.!` pre-filled, then you just type `rm ` and `\u003cTAB\u003e` to\nauto-complete the current file name, and `\u003cCR\u003e` to execute the command.\n\n``` vim\n:.!rm %\u003cTAB\u003e\u003cCR\u003e\n\n```\n\n## Making it better\n\nThe one quirk that I don't like about this is that the buffer remains open\nafter deleting, and sometimes I forget to close it and end up re-creating it by\nmistake when running `:wall` or `:xall`.\n\n\nCreate a `DeleteFile` command with vim command.\n\n``` vim\n:command! DeleteFile execute \"!rm %\" | bdelete!\n```\n\nCreate a `DeleteFile` command with lua.\n``` lua\nvim.api.nvim_create_user_command(\n  'DeleteFile',\n  function()\n    -- Delete the current file from disk\n    vim.cmd('!rm %')\n    -- Close the buffer without saving\n    vim.cmd('bdelete!')\n  end,\n  {}\n)\n```\n",
      "summary": "This one is one that I've been using quite often, I did't have a hotkey for it, I just used the shell command.",
      "date_published": "2025-09-02T13:23:21Z",
      "date_modified": "2025-09-02T13:23:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/mark-of-pride-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/mark-of-pride-hollow-knight-keeb-run/",
      "title": "Mark Of Pride Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4\" class=\"glightbox-link\" aria-label=\"mark of pride hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4\" type=\"video/mp4\"\u003emark of pride hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe Knight collects the mark of pride charm after defeating the mantis lords.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![mark of pride hollow knight keeb run](https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4)\n\n\u003e The Knight collects the mark of pride charm after defeating the mantis lords.\n",
      "summary": "The Knight collects the mark of pride charm after defeating the mantis lords.",
      "image": "https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4",
      "date_published": "2025-08-31T17:10:06Z",
      "date_modified": "2025-08-31T17:10:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/defeating-the-mantis-lords/",
      "url": "https://waylonwalker.com/shots/defeating-the-mantis-lords/",
      "title": "Defeating The Mantis Lords",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4\" class=\"glightbox-link\" aria-label=\"Defeating the mantis lords\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4\" type=\"video/mp4\"\u003eDefeating the mantis lords\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe Knight reigns victorious against the three mantis lords, earning the respect of the mantis village.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Defeating the mantis lords](https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4)\n\n\u003e The Knight reigns victorious against the three mantis lords, earning the respect of the mantis village.\n",
      "summary": "The Knight reigns victorious against the three mantis lords, earning the respect of the mantis village.",
      "image": "https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4",
      "date_published": "2025-08-31T17:09:31Z",
      "date_modified": "2025-08-31T17:09:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/mantis-lords-defeat-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/mantis-lords-defeat-hollow-knight-keeb-run/",
      "title": "Mantis Lords Defeat Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4\" class=\"glightbox-link\" aria-label=\"mantis lords defeat hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4\" type=\"video/mp4\"\u003emantis lords defeat hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe Knight falls victim to the Mantis Lords in his first attempt to challenge them.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![mantis lords defeat hollow knight keeb run](https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4)\n\n\u003e The Knight falls victim to the Mantis Lords in his first attempt to challenge them.\n",
      "summary": "The Knight falls victim to the Mantis Lords in his first attempt to challenge them.",
      "image": "https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4",
      "date_published": "2025-08-31T17:08:29Z",
      "date_modified": "2025-08-31T17:08:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/challenging-the-mantis-lords-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/challenging-the-mantis-lords-hollow-knight-keeb-run/",
      "title": "Challenging The Mantis Lords Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4\" class=\"glightbox-link\" aria-label=\"Challenging the mantis lords hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4\" type=\"video/mp4\"\u003eChallenging the mantis lords hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe little night steps in front of the three mantis lords and draws his nail signaling his challenge.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Challenging the mantis lords hollow knight keeb run](https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4)\n\n\u003e The little night steps in front of the three mantis lords and draws his nail signaling his challenge.\n",
      "summary": "The little night steps in front of the three mantis lords and draws his nail signaling his challenge.",
      "image": "https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4",
      "date_published": "2025-08-31T17:06:58Z",
      "date_modified": "2025-08-31T17:06:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/thorny-wanderers-journal-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/thorny-wanderers-journal-hollow-knight-keeb-run/",
      "title": "Thorny Wanderers Journal Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4\" class=\"glightbox-link\" aria-label=\"Thorny Wanderers Journal Hollow Knight Keeb Run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4\" type=\"video/mp4\"\u003eThorny Wanderers Journal Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eParkour though the thorns yields a wanderers journal.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Thorny Wanderers Journal Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4)\n\n\u003e Parkour though the thorns yields a wanderers journal.\n",
      "summary": "Parkour though the thorns yields a wanderers journal.",
      "image": "https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4",
      "date_published": "2025-08-31T11:16:31Z",
      "date_modified": "2025-08-31T11:16:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/spore-shroom-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/spore-shroom-hollow-knight-keeb-run/",
      "title": "Spore Shroom Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4\" class=\"glightbox-link\" aria-label=\"spore shroom hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4\" type=\"video/mp4\"\u003espore shroom hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eUnlocking the Spore Shroom Charm in Hollow Knight Keeb Run\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![spore shroom hollow knight keeb run](https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4)\n\n\u003e Unlocking the Spore Shroom Charm in Hollow Knight Keeb Run\n",
      "summary": "Unlocking the Spore Shroom Charm in Hollow Knight Keeb Run",
      "image": "https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4",
      "date_published": "2025-08-31T11:15:42Z",
      "date_modified": "2025-08-31T11:15:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/thorny-mask-shard-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/thorny-mask-shard-hollow-knight-keeb-run/",
      "title": "Thorny Mask Shard Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4\" class=\"glightbox-link\" aria-label=\"Thorny Mask Shard Hollow Knight Keeb Run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4\" type=\"video/mp4\"\u003eThorny Mask Shard Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA tricky parkour through the thorns to yield a mask shard and complete a full mask.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Thorny Mask Shard Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4)\n\n\u003e A tricky parkour through the thorns to yield a mask shard and complete a full mask.\n",
      "summary": "A tricky parkour through the thorns to yield a mask shard and complete a full mask.",
      "image": "https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4",
      "date_published": "2025-08-31T11:14:55Z",
      "date_modified": "2025-08-31T11:14:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cut-away-keycap-down/",
      "url": "https://waylonwalker.com/shots/cut-away-keycap-down/",
      "title": "Cut Away Keycap Down",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg\" class=\"glightbox-link\" aria-label=\"cut away keycap down\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg\" alt=\"cut away keycap down\"/ data-glightbox=\"description: cut away keycap down\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA cut away keycap on a Durock lupine switched pressed all the way to bottom out.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![cut away keycap down](https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg)\n\n\u003e A cut away keycap on a Durock lupine switched pressed all the way to bottom out.\n\n",
      "summary": "A cut away keycap on a Durock lupine switched pressed all the way to bottom out.",
      "image": "https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg",
      "date_published": "2025-08-30T16:28:16Z",
      "date_modified": "2025-08-30T16:28:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/cutaway-key-cap-up/",
      "url": "https://waylonwalker.com/shots/cutaway-key-cap-up/",
      "title": "Cutaway Key Cap Up",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg\" class=\"glightbox-link\" aria-label=\"cutaway key cap up\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg\" alt=\"cutaway key cap up\"/ data-glightbox=\"description: cutaway key cap up\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA cutaway keycap sitting on a durock lupine switch\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![cutaway key cap up](https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg)\n\n\u003e A cutaway keycap sitting on a durock lupine switch\n",
      "summary": "A cutaway keycap sitting on a durock lupine switch",
      "image": "https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg",
      "date_published": "2025-08-30T16:27:22Z",
      "date_modified": "2025-08-30T16:27:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/freshly-cut-keycap-cut-away/",
      "url": "https://waylonwalker.com/shots/freshly-cut-keycap-cut-away/",
      "title": "Freshly Cut Keycap Cut Away",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg\" class=\"glightbox-link\" aria-label=\"freshly cut keycap cut away\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg\" alt=\"freshly cut keycap cut away\"/ data-glightbox=\"description: freshly cut keycap cut away\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA keycap glued to a 2x4 freshly turned into a cut away keykap.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![freshly cut keycap cut away](https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg)\n\n\u003e A keycap glued to a 2x4 freshly turned into a cut away keykap.\n\n",
      "summary": "A keycap glued to a 2x4 freshly turned into a cut away keykap.",
      "image": "https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg",
      "date_published": "2025-08-30T16:26:22Z",
      "date_modified": "2025-08-30T16:26:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/keycap-cut-away/",
      "url": "https://waylonwalker.com/keycap-cut-away/",
      "title": "Keycap Cut Away",
      "content_html": "\u003cp\u003eI was curious how/if my custom keycap design was hitting my switches.  So I set\nout to find out what the fitup inside of this assembly looks like, but not\ntheoretically, a fully sliced view into their fit up in the flesh.\u003c/p\u003e\n\u003ch2 id=\"the-set-up\"\u003eThe set up \u003ca href=\"#the-set-up\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo setup for this cut, I flooded the edge of a 2x4 with hot glue, and inserted\nthe cap such that the step was tangent with the edge.  This way I could use the\nedge as a guide to cut one side off and leave the stem in tact.  I took a\nhandsaw to it and filed it smooth.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20250830_193408664.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg\" alt=\"PXL_20250830_193408664.jpg\"/ data-glightbox=\"description: PXL_20250830_193408664.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eRemoval was applying some isopropyl alcohol and it popped right off.\u003c/p\u003e\n\u003ch2 id=\"results\"\u003eResults \u003ca href=\"#results\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eActually the results aren’t that interesting.  I found that the pictures turned\nout really good, but nothing was touching and it sits in the stem exactly as I\nthought it did.  I had a thought, what if the cap is not allowing the switch to\nreach it’s full travel, and had no way to know, but now I know.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20250830_193653788.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg\" alt=\"PXL_20250830_193653788.jpg\"/ data-glightbox=\"description: PXL_20250830_193653788.jpg\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eKey Up\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20250830_193712809.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg\" alt=\"PXL_20250830_193712809.jpg\"/ data-glightbox=\"description: PXL_20250830_193712809.jpg\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eKey Down\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nI was curious how/if my custom keycap design was hitting my switches.  So I set\nout to find out what the fitup inside of this assembly looks like, but not\ntheoretically, a fully sliced view into their fit up in the flesh.\n\n## The set up\n\nTo setup for this cut, I flooded the edge of a 2x4 with hot glue, and inserted\nthe cap such that the step was tangent with the edge.  This way I could use the\nedge as a guide to cut one side off and leave the stem in tact.  I took a\nhandsaw to it and filed it smooth.\n\n![PXL_20250830_193408664.jpg](https://dropper.waylonwalker.com/api/file/c02aff9d-bb8f-42aa-8dd8-34b391a44547.jpg)\n\nRemoval was applying some isopropyl alcohol and it popped right off.\n\n## Results\n\nActually the results aren't that interesting.  I found that the pictures turned\nout really good, but nothing was touching and it sits in the stem exactly as I\nthought it did.  I had a thought, what if the cap is not allowing the switch to\nreach it's full travel, and had no way to know, but now I know.\n\n![PXL_20250830_193653788.jpg](https://dropper.waylonwalker.com/api/file/7b6d0a00-1a4a-4341-b3c9-87d7436fd55a.jpg)\n\n\u003e Key Up\n\n![PXL_20250830_193712809.jpg](https://dropper.waylonwalker.com/api/file/a767d7d4-cd81-44fe-b3a7-2500df2d92df.jpg)\n\n\u003e Key Down\n",
      "summary": "I was curious how/if my custom keycap design was hitting my switches. So I set out to find out what the fitup inside of this assembly looks like, but not...",
      "date_published": "2025-08-30T16:03:01Z",
      "date_modified": "2025-08-30T16:03:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/aquiring-ismas-tear-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/aquiring-ismas-tear-hollow-knight-keeb-run/",
      "title": "Aquiring Ismas Tear Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4\" class=\"glightbox-link\" aria-label=\"Aquiring Ismas Tear Hollow Knight Keeb Run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4\" type=\"video/mp4\"\u003eAquiring Ismas Tear Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe long trek has paid off and we have aquired Isma’s tear, it coats our outter shell with protective coating from the acid, giving us access to new parts of the world.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Aquiring Ismas Tear Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4)\n\n\u003e The long trek has paid off and we have aquired Isma's tear, it coats our outter shell with protective coating from the acid, giving us access to new parts of the world.\n",
      "summary": "The long trek has paid off and we have aquired Isma's tear, it coats our outter shell with protective coating from the acid, giving us access to new parts of the world.",
      "image": "https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4",
      "date_published": "2025-08-30T11:13:21Z",
      "date_modified": "2025-08-30T11:13:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/ismas-tear-battle-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/ismas-tear-battle-hollow-knight-keeb-run/",
      "title": "Ismas Tear Battle Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4\" class=\"glightbox-link\" aria-label=\"ismas tear battle hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4\" type=\"video/mp4\"\u003eismas tear battle hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eFinishing the battle before accessing Isma’s tear in Hollow Knight\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![ismas tear battle hollow knight keeb run](https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4)\n\n\u003e Finishing the battle before accessing Isma's tear in Hollow Knight\n",
      "summary": "Finishing the battle before accessing Isma's tear in Hollow Knight",
      "image": "https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4",
      "date_published": "2025-08-30T11:07:17Z",
      "date_modified": "2025-08-30T11:07:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/climbing-out-of-deep-nest-in-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/climbing-out-of-deep-nest-in-hollow-knight-keeb-run/",
      "title": "Climbing Out Of Deep Nest In Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4\" class=\"glightbox-link\" aria-label=\"Climbing out of deep nest in hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4\" type=\"video/mp4\"\u003eClimbing out of deep nest in hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eMaking light moves of this tricky parkour run between deepnest and the royal waterways\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Climbing out of deep nest in hollow knight keeb run](https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4)\n\n\u003e Making light moves of this tricky parkour run between deepnest and the royal waterways\n",
      "summary": "Making light moves of this tricky parkour run between deepnest and the royal waterways",
      "image": "https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4",
      "date_published": "2025-08-30T11:02:47Z",
      "date_modified": "2025-08-30T11:02:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/knife-sharpener-small-upgrade/",
      "url": "https://waylonwalker.com/knife-sharpener-small-upgrade/",
      "title": "Knife Sharpener Small Upgrade",
      "content_html": "\u003cp\u003eI’ve used this knife sharpener that I printed for a few years now.  I thought\nthat it was based on the Russian designed TSPROF, but in looking through the\nhistory it looks very similar to the USA Edge Pro Inc Apex designs that goes\nback to the 1990’s.  The angle isn’t quite holding like it used to.  I’ve got a\nlot of ideas for my own model, but for now I’m going to print some spacers to\nhelp get repeatable angles.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c587bfe8-e310-429d-a3fd-ee617670f6ef.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20250822_211720540.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c587bfe8-e310-429d-a3fd-ee617670f6ef.jpg\" alt=\"PXL_20250822_211720540.jpg\"/ data-glightbox=\"description: PXL_20250822_211720540.jpg\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003esetting the angle on my sharpener\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d09ababd-e1e3-4290-ac35-725181df89b7.jpg\" class=\"glightbox-link\" aria-label=\"PXL_20250822_211926948.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d09ababd-e1e3-4290-ac35-725181df89b7.jpg\" alt=\"PXL_20250822_211926948.jpg\"/ data-glightbox=\"description: PXL_20250822_211926948.jpg\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWhere I want to place a fixed height collar\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e16deg 31.5mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e17deg 34.8mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e18deg 38.0mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e19deg 40.6mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e20deg 43.8mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e21deg 47.4mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e22deg 50.2mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e23deg 52.0mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003e24deg 54.3mm\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"so-i-may-have-went-to-the-next-level\"\u003eso I may have went to the next level \u003ca href=\"#so-i-may-have-went-to-the-next-level\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" class=\"glightbox-link\" aria-label=\"30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" type=\"video/mp4\"\u003e30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI've used this knife sharpener that I printed for a few years now.  I thought\nthat it was based on the Russian designed TSPROF, but in looking through the\nhistory it looks very similar to the USA Edge Pro Inc Apex designs that goes\nback to the 1990's.  The angle isn't quite holding like it used to.  I've got a\nlot of ideas for my own model, but for now I'm going to print some spacers to\nhelp get repeatable angles.\n\n\n![PXL_20250822_211720540.jpg](https://dropper.waylonwalker.com/api/file/c587bfe8-e310-429d-a3fd-ee617670f6ef.jpg)\n\n\u003e setting the angle on my sharpener\n\n![PXL_20250822_211926948.jpg](https://dropper.waylonwalker.com/api/file/d09ababd-e1e3-4290-ac35-725181df89b7.jpg)\n\n\u003e Where I want to place a fixed height collar\n\n``` csv\n16deg 31.5mm\n17deg 34.8mm\n18deg 38.0mm\n19deg 40.6mm\n20deg 43.8mm\n21deg 47.4mm\n22deg 50.2mm\n23deg 52.0mm\n24deg 54.3mm\n```\n\n## so I may have went to the next level\n\n![30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4](https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4)\n\n",
      "summary": "I've used this knife sharpener that I printed for a few years now. I thought that it was based on the Russian designed TSPROF, but in looking through the...",
      "date_published": "2025-08-29T16:17:00Z",
      "date_modified": "2025-08-29T16:17:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "knife"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-822/",
      "url": "https://waylonwalker.com/thought-822/",
      "title": "💭 Plastic rollers instead of bearings. Little step forward with ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"QTPEwmI5epA\" title=\"Plastic rollers instead of bearings. Little step forward with every version! #BBlauncher #airsoft\" playlabel=\"Play: Plastic rollers instead of bearings. Little step forward with every version! #BBlauncher #airsoft\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a really uniquely designed print in place bb launcher.  I’ve never seen bb’s on a zip tie like that, they look smooth and molded.  Interesting to hear about the design process.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"QTPEwmI5epA\" title=\"Plastic rollers instead of bearings. Little step forward with every version! #BBlauncher #airsoft\" playlabel=\"Play: Plastic rollers instead of bearings. Little step forward with every version! #BBlauncher #airsoft\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is a really uniquely designed print in place bb launcher.  I've never seen bb's on a zip tie like that, they look smooth and molded.  Interesting to hear about the design process.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/QTPEwmI5epA",
      "date_published": "2025-08-29T13:31:40Z",
      "date_modified": "2025-08-29T13:31:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-821/",
      "url": "https://waylonwalker.com/thought-821/",
      "title": "💭 Learn to use email with git!",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://git-send-email.io/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLearn to use email with git!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003egit-send-email.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis site gives us a glimpse into the development workflow using \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e over email, without remote centralized servers.  I found it interesting how patches can be sent with an optional cover letter nearly like a pr would be made.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://git-send-email.io/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLearn to use email with git!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003egit-send-email.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis site gives us a glimpse into the development workflow using git over email, without remote centralized servers.  I found it interesting how patches can be sent with an optional cover letter nearly like a pr would be made.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://git-send-email.io/",
      "date_published": "2025-08-29T13:23:08Z",
      "date_modified": "2025-08-29T13:23:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/vim-noa/",
      "url": "https://waylonwalker.com/vim-noa/",
      "title": "vim noa",
      "content_html": "\u003cp\u003eVim \u003ccode\u003e:noa\u003c/code\u003e is a command that runs what you call without autocommands on.  This\nis typically used when you have some \u003ccode\u003eBufWritePre\u003c/code\u003e commands for formatting,\nmost auto formatters are implemented this way in vim.  It can be super useful\nif you have something like a yaml/json file that you have crafted perfectly how\nyou want it, maybe it has some source code for a small script or sql embeded\nand your formatter wants to turn it into one line.  You could get a better\nformatter, but for these one off cases that aren’t a big bother to me I run\n\u003ccode\u003e:noa w\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003enoa\u003c/span\u003e \u003cspan class=\"nx\"\u003ew\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nVim `:noa` is a command that runs what you call without autocommands on.  This\nis typically used when you have some `BufWritePre` commands for formatting,\nmost auto formatters are implemented this way in vim.  It can be super useful\nif you have something like a yaml/json file that you have crafted perfectly how\nyou want it, maybe it has some source code for a small script or sql embeded\nand your formatter wants to turn it into one line.  You could get a better\nformatter, but for these one off cases that aren't a big bother to me I run\n`:noa w`.\n\n``` vim\n:noa w\n```\n",
      "summary": "Vim is a command that runs what you call without autocommands on. This is typically used when you have some commands for formatting, most auto formatters are...",
      "date_published": "2025-08-29T08:32:44Z",
      "date_modified": "2025-08-29T08:32:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "vim"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-820/",
      "url": "https://waylonwalker.com/thought-820/",
      "title": "💭 Repository Mirrors | Forgejo – Beyond coding. We forge.",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://forgejo.org/docs/latest/user/repo-mirror/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://forgejo.org/_astro/og-preview.Uy75QWb0_6Lpd2.webp\" alt=\"Repository Mirrors | Forgejo – Beyond coding. We forge.\" loading=\"lazy\"/ data-glightbox=\"description: Repository Mirrors | Forgejo – Beyond coding. We forge.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRepository Mirrors | Forgejo – Beyond coding. We forge.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eforgejo.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eForgejo supports repository mirrors, I think this is how I am going to handle migrating all of my github repos into forgejo.  over time I’ll probably go through and delete a bunch of unnecessary one from github, ones that might have a user or two I might keep on github.  I have such small scale projects with almost no users I am not sure that It really matters for me or not.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://forgejo.org/docs/latest/user/repo-mirror/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://forgejo.org/_astro/og-preview.Uy75QWb0_6Lpd2.webp\" alt=\"Repository Mirrors | Forgejo – Beyond coding. We forge.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRepository Mirrors | Forgejo – Beyond coding. We forge.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eforgejo.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nForgejo supports repository mirrors, I think this is how I am going to handle migrating all of my github repos into forgejo.  over time I'll probably go through and delete a bunch of unnecessary one from github, ones that might have a user or two I might keep on github.  I have such small scale projects with almost no users I am not sure that It really matters for me or not.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://forgejo.org/docs/latest/user/repo-mirror/",
      "date_published": "2025-08-29T00:50:50Z",
      "date_modified": "2025-08-29T00:50:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "git",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-819/",
      "url": "https://waylonwalker.com/thought-819/",
      "title": "💭 Vertical combos are dumb, this makes way more sense. · WaylonW...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/zmk-config-42block/commit/48c30d2ee4efcdd08266093b5ce79bba5730e6f0\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/4034a9cb71c0ed9696f0adaefbc5e0913799b569b121a1702acfc037b4625c13/WaylonWalker/zmk-config-42block/commit/48c30d2ee4efcdd08266093b5ce79bba5730e6f0\" alt=\"Vertical combos are dumb, this makes way more sense. · WaylonWalker/zmk-config-42block@48c30d2 — Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: Vertical combos are dumb, this makes way more sense. · WaylonWalker/zmk-config-42block@48c30d2 — Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eVertical combos are dumb, this makes way more sense. · WaylonWalker/zmk-config-42block@48c30d2\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis commit to my keymap gets rid of vertical combos, those were a bad idea to me.  Maybe I didnt give it a shot, but hitting two keys at once on purpose with the same finger is a skill, one that I don’t have.  This change maps those symbols so that they work as a combo or layer switch, so getting the layer key in first does it by layer, but pressing them at the same time gives me the combo, kinda feels genius.  We will see how it goes.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/zmk-config-42block/commit/48c30d2ee4efcdd08266093b5ce79bba5730e6f0\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/4034a9cb71c0ed9696f0adaefbc5e0913799b569b121a1702acfc037b4625c13/WaylonWalker/zmk-config-42block/commit/48c30d2ee4efcdd08266093b5ce79bba5730e6f0\" alt=\"Vertical combos are dumb, this makes way more sense. · WaylonWalker/zmk-config-42block@48c30d2 — Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eVertical combos are dumb, this makes way more sense. · WaylonWalker/zmk-config-42block@48c30d2\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis commit to my keymap gets rid of vertical combos, those were a bad idea to me.  Maybe I didnt give it a shot, but hitting two keys at once on purpose with the same finger is a skill, one that I don't have.  This change maps those symbols so that they work as a combo or layer switch, so getting the layer key in first does it by layer, but pressing them at the same time gives me the combo, kinda feels genius.  We will see how it goes.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/zmk-config-42block/commit/48c30d2ee4efcdd08266093b5ce79bba5730e6f0",
      "date_published": "2025-08-29T00:28:21Z",
      "date_modified": "2025-08-29T00:28:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keyboard",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-818/",
      "url": "https://waylonwalker.com/thought-818/",
      "title": "💭 Let's Make Sure Github Doesn't Become the only Option - Edward...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.edwardloveall.com/lets-make-sure-github-doesnt-become-the-only-option\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.edwardloveall.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.edwardloveall.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLet\u0026#39;s Make Sure Github Doesn\u0026#39;t Become the only Option - Edward Loveall\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.edwardloveall.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis post is a masterclass in blogging, cross linking, backing up your ideas with posts from other great sources.  I have a week of reading inside this post, and need to come back later when Im not sick.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.edwardloveall.com/lets-make-sure-github-doesnt-become-the-only-option\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLet\u0026#39;s Make Sure Github Doesn\u0026#39;t Become the only Option - Edward Loveall\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.edwardloveall.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis post is a masterclass in blogging, cross linking, backing up your ideas with posts from other great sources.  I have a week of reading inside this post, and need to come back later when Im not sick.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.edwardloveall.com/lets-make-sure-github-doesnt-become-the-only-option",
      "date_published": "2025-08-28T23:45:53Z",
      "date_modified": "2025-08-28T23:45:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "git",
        "later",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-817/",
      "url": "https://waylonwalker.com/thought-817/",
      "title": "💭 This Bothers Me - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"3NFwQIoLFgE\" title=\"This Bothers Me\" playlabel=\"Play: This Bothers Me\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m playing through peak right now with Wyatt and it is a great game, a small wholesome  indiegame that is legit hard, but fun with the simplest concept.  You are a scout who has crashlanded on an island, your goal is to get to the peak with your friends.  You must manage hunger, stamina, weight, health and energy.  You have limited resources and must help everyone to the top, if someone is low on stamina, they are going to need a helping hand or a stonger climber to go up and set pitons and ropes.  Its a fantastic collaborative play game\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/192b267c-f577-4282-9393-1bf74c0b629f.mp4\" class=\"glightbox-link\" aria-label=\"PEAK - 2025-08-27 8-49-54 PM.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/192b267c-f577-4282-9393-1bf74c0b629f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/192b267c-f577-4282-9393-1bf74c0b629f.mp4\" type=\"video/mp4\"\u003ePEAK - 2025-08-27 8-49-54 PM.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ea short clip of me playing with wyatt, I did not have anything great to add, but this is just a random clip\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"ripped-off\"\u003eRipped off \u003ca href=\"#ripped-off\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt was insta-ripped off by roblox with microtransactions pay to win garbage.  It looks one for one the same damn models and interface, they spared nothing at making it look exactly like the original.  They let you buy a golden apple assuming it gives you crazy stamina to climb with ease, and it costs goddam robux.  As Big A says here theres nothing they can really do, the roblox platform just lets this happen, and if they didn’t they would loose huge revenue because this is so prevelant.  Legal fees would crush this small team that made it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bb9c2505-7f67-42f5-8ddd-01b0b2d9d046.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-28T01-44-40-840Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/bb9c2505-7f67-42f5-8ddd-01b0b2d9d046.png\" alt=\"screenshot-2025-08-28T01-44-40-840Z.png\"/ data-glightbox=\"description: screenshot-2025-08-28T01-44-40-840Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"3NFwQIoLFgE\" title=\"This Bothers Me\" playlabel=\"Play: This Bothers Me\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI'm playing through peak right now with Wyatt and it is a great game, a small wholesome  indiegame that is legit hard, but fun with the simplest concept.  You are a scout who has crashlanded on an island, your goal is to get to the peak with your friends.  You must manage hunger, stamina, weight, health and energy.  You have limited resources and must help everyone to the top, if someone is low on stamina, they are going to need a helping hand or a stonger climber to go up and set pitons and ropes.  Its a fantastic collaborative play game\n\n![PEAK - 2025-08-27 8-49-54 PM.mp4](https://dropper.waylonwalker.com/api/file/192b267c-f577-4282-9393-1bf74c0b629f.mp4)\n\n\u003e a short clip of me playing with wyatt, I did not have anything great to add, but this is just a random clip\n\n## Ripped off\n\nIt was insta-ripped off by roblox with microtransactions pay to win garbage.  It looks one for one the same damn models and interface, they spared nothing at making it look exactly like the original.  They let you buy a golden apple assuming it gives you crazy stamina to climb with ease, and it costs goddam robux.  As Big A says here theres nothing they can really do, the roblox platform just lets this happen, and if they didn't they would loose huge revenue because this is so prevelant.  Legal fees would crush this small team that made it.\n\n![screenshot-2025-08-28T01-44-40-840Z.png](https://dropper.waylonwalker.com/api/file/bb9c2505-7f67-42f5-8ddd-01b0b2d9d046.png)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=3NFwQIoLFgE",
      "date_published": "2025-08-28T01:55:58Z",
      "date_modified": "2025-08-28T01:55:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-816/",
      "url": "https://waylonwalker.com/thought-816/",
      "title": "💭 Explore - Forgejo",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://git.dbushell.com/explore/repos\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"/assets/img/logo.png\" alt=\"Explore — Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.\" loading=\"lazy\"/ data-glightbox=\"description: Explore — Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExplore\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eForgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eForgejo · git.dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003edamn david has been busy, this is sick seeing all of the repos, I’m ready to jump in!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://git.dbushell.com/explore/repos\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"/assets/img/logo.png\" alt=\"Explore — Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExplore\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eForgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eForgejo \u0026middot; git.dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ndamn david has been busy, this is sick seeing all of the repos, I'm ready to jump in!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://git.dbushell.com/explore/repos",
      "date_published": "2025-08-27T20:38:36Z",
      "date_modified": "2025-08-27T20:38:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-815/",
      "url": "https://waylonwalker.com/thought-815/",
      "title": "💭 Eric: \"This was pushed out with a rus…\" - Mastodon",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://social.ericwbailey.website/@eric/115100947111974331\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/social.ericwbailey.website.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/social.ericwbailey.website.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eEric (@eric@social.ericwbailey.website)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis was pushed out with a rushed security review, a coerced and unwilling engineering team, and in full opposition to our supposed company values. \n\u003cp\u003eIf you don\u0026#39;t want it, tell them. Social media …\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eMastodon · social.ericwbailey.website\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003edamn, M$ really pushing hard on moving github into the ai org.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://social.ericwbailey.website/@eric/115100947111974331\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eEric (@eric@social.ericwbailey.website)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis was pushed out with a rushed security review, a coerced and unwilling engineering team, and in full opposition to our supposed company values. \n\n\nIf you don\u0026#39;t want it, tell them. Social media ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eMastodon \u0026middot; social.ericwbailey.website\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ndamn, M$ really pushing hard on moving github into the ai org.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://social.ericwbailey.website/@eric/115100947111974331",
      "date_published": "2025-08-27T20:35:30Z",
      "date_modified": "2025-08-27T20:35:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-814/",
      "url": "https://waylonwalker.com/thought-814/",
      "title": "💭 The BIGGEST lie in software development - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"U9eMAiTwMhI\" title=\"The BIGGEST lie in software development\" playlabel=\"Play: The BIGGEST lie in software development\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis man feels sad, he never had a chance to bloom.  He was stuck behind the drudgery of jira tickets.  This is what the consultant driven  agile has got us.  Its ripped out all the thinking and creativity, its left us with moving tickets across the board, not allowed time to run on an idea when we have one.  Not allowed to do extra work or refactoring in a module that we are already in.  pushed to move faster for less.\u003c/p\u003e\n\u003cp\u003eI feel like this mans experience has been quite different from my own and I’m grateful to have some leeway to be creative and do some meaningful work outside the jira board.  I’m grateful to be able to provide a good income for my family without taking on all the risk myself.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"U9eMAiTwMhI\" title=\"The BIGGEST lie in software development\" playlabel=\"Play: The BIGGEST lie in software development\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis man feels sad, he never had a chance to bloom.  He was stuck behind the drudgery of jira tickets.  This is what the consultant driven  agile has got us.  Its ripped out all the thinking and creativity, its left us with moving tickets across the board, not allowed time to run on an idea when we have one.  Not allowed to do extra work or refactoring in a module that we are already in.  pushed to move faster for less.  \n\nI feel like this mans experience has been quite different from my own and I'm grateful to have some leeway to be creative and do some meaningful work outside the jira board.  I'm grateful to be able to provide a good income for my family without taking on all the risk myself.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=U9eMAiTwMhI",
      "date_published": "2025-08-27T20:24:38Z",
      "date_modified": "2025-08-27T20:24:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-813/",
      "url": "https://waylonwalker.com/thought-813/",
      "title": "💭 Reflection - AI Work and ADHD",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/reflection-ai-work-and-adhd/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20250827125949_5f9ed179.png\" alt=\"Reflection - AI Work and ADHD | Nic Payne — Reflection It\u0026#39;s time to be more devoted to my work... AI has been a cool technology to\nwatch and experience but one thing I\u0026#39;m allowing it to do to me\" loading=\"lazy\"/ data-glightbox=\"description: Reflection - AI Work and ADHD | Nic Payne — Reflection It\u0026#39;s time to be more devoted to my work... AI has been a cool technology to\nwatch and experience but one thing I\u0026#39;m allowing it to do to me\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReflection - AI Work and ADHD | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReflection It\u0026#39;s time to be more devoted to my work... AI has been a cool technology to\nwatch and experience but one thing I\u0026#39;m allowing it to do to me \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eCrazy that we wrote such similar posts on the same day independantly, I just wrote \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\" data-preview=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e sitting offline in a doctor office.  The two pull out’s are very good,\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e“AI is not magic, it’s a headache”.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eBy definition AI is magic to the vast majority of people, but funny how true this is.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e“When I finish tasks, I’m not fulfilled… if anything I’m relieved.”\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI just wrote something very similar, maybe this feeling can be used for guidance to when to use AI.  When you complete this task will you feel relieved its over?  Is it a chore? or creative work you want to \u003cstrong\u003eaccomplish\u003c/strong\u003e.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/reflection-ai-work-and-adhd/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/images.pype.dev/main/blog-media/20250827125949_5f9ed179.png\" alt=\"Reflection - AI Work and ADHD | Nic Payne — Reflection It\u0026#39;s time to be more devoted to my work... AI has been a cool technology to\nwatch and experience but one thing I\u0026#39;m allowing it to do to me\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReflection - AI Work and ADHD | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReflection It\u0026#39;s time to be more devoted to my work... AI has been a cool technology to\nwatch and experience but one thing I\u0026#39;m allowing it to do to me \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nCrazy that we wrote such similar posts on the same day independantly, I just wrote \u003ca href=\"/im-out-on-agents/\" class=\"wikilink\" data-title=\"I\u0026#39;m Out On Agents\" data-description=\"Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...\" data-date=\"2025-08-27\"\u003eI\u0026#39;m Out On Agents\u003c/a\u003e sitting offline in a doctor office.  The two pull out's are very good, \n\n\u003e \"AI is not magic, it's a headache\".  \n\nBy definition AI is magic to the vast majority of people, but funny how true this is.  \n\n\u003e \"When I finish tasks, I'm not fulfilled... if anything I'm relieved.\"\n\nI just wrote something very similar, maybe this feeling can be used for guidance to when to use AI.  When you complete this task will you feel relieved its over?  Is it a chore? or creative work you want to **accomplish**.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/reflection-ai-work-and-adhd/",
      "date_published": "2025-08-27T20:15:48Z",
      "date_modified": "2025-08-27T20:15:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/im-out-on-agents/",
      "url": "https://waylonwalker.com/im-out-on-agents/",
      "title": "I'm Out On Agents",
      "content_html": "\u003cp\u003eIts the year 2025 and we are only a few years into having 6 months to live\nbefore ai takes our jobs, and the big push right now is agents, managing\nagents.  I will fully concede to I’m not doing it right, or a future state gets\nbetter than where we are right now, but right now they kinda suck.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eTransparency\u003c/p\u003e\n\u003cp\u003eI’m sitting offline right now as I write this, These are my feels, no\nresearch, no links, no ai, just vibes.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"chat\"\u003eChat \u003ca href=\"#chat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eChat is what really kicked off ai uses and goes back as old as computers, but\nit always sucked.  Then chatgpt rocked the world with the biggest launch day in\nhistory and showed us that it could actually be pretty good.  Unethically\ntrained on everything they could get their hands on, burning cities worth of\nelectricity to train, and keep training to stay ahead of the competition.  It\ndoes a damn good job.  There are tells, and if you see enough of it there is a\nlot that turns to slop, but if you had never seen it before, there is no way\nyou would assume that it was not a computer.\u003c/p\u003e\n\u003cp\u003eIt does a damn good job at being average, it can do what seems like everything\nnot related to security and authentication at a pretty average level.  This is\nits super power.  Whenever you are trying to bridge between something you know\nand something new, you can get a pretty good answer, and likely spot the bs in\nwhat you know.\u003c/p\u003e\n\u003ch2 id=\"agents\"\u003eAgents \u003ca href=\"#agents\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that our models have gotten better, hardware has gotten bigger, better, and\na lot more of it, we can really expand context windows really wide.  With that\nbrought the use of agents, these tools get context from sources on their own\nand often are given read/write access to your computer.  Depending on the model\nthese things will branch out to make small changes that look no worse than a\nformatter on every goddam line of your codebase.  Except they are not a\nformatter, they are not backed by ast checks.  They do not have any guarantees.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThey take the fun out of creation.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThe emphasis now becomes on the code review.  All you have to do is ask it to\nmakes changes for you.  Bring in your expertise of what changes should be next,\nor even just punt to asking it what comes next.  I’ve yet to talk to someone\nthat is diligent enough to read everything it spits out in excruciating detail\nto the point that it does not cause significant issues.\u003c/p\u003e\n\u003cp\u003eYou see here is the thing, its average.  With a little bit of context it can do\naverage work.  It is not an expert.  On the surface this feels fine, making\ncrud endpoints has been done for decades, and average developers crush these\nthings every day no problem.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt’s Average at best\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eYou know what is not average?  Your knowledge of the use case you are solving.\nYou may not feel like an expert, but given that there are likely about 5 people\nworking in your codebase, you are a fukin expert at that thing.  The average\nperson off the street takes time to onboard, often months, or years for someone\nto really understand the business you are working in.  These things don’t have\nthat.\u003c/p\u003e\n\u003ch2 id=\"im-not-letting-it-in-shit-that-i-care-avout\"\u003eI’m not letting it in shit that I care avout \u003ca href=\"#im-not-letting-it-in-shit-that-i-care-avout\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI was early to the game to codeium, even used the predecessor for awhile, I was\nearly to chat gpt, I was early to windsurf and the possibilities that agentic\nides brought.  I will be late on letting agents touch my production code bases.\nThe few times I’ve tried for changes that seem easy enough, but more work than\nwhat I want to do at the time, I’ve regretted it.  It’s only left behind a mess\nthat it cant deal with anymore, runs in circles trying to solve any problem,\nand I’m left with shit that feels like a house of cards that breaks anytime you\ntouch it.\u003c/p\u003e\n\u003ch2 id=\"i-will-continue-to-poc\"\u003eI will continue to POC \u003ca href=\"#i-will-continue-to-poc\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs much of a mess as these things, make they are super useful to vibe code\nideas, move quickly and try different approaches to a problem.  They let you\nmake a proof of concept that you can get in front of team mates, bosses, or\nusers.\u003c/p\u003e\n\u003cp\u003eHonestly I still prefer the chat interface.  It feels like a nice balance of\nusing my brain, and knowing that I am punting on something.  Do I need to know\nthe whole \u003ccode\u003effmpeg\u003c/code\u003e interface to grab a thumbnail for my webapp, no, would I\nactually like to learn it someday, yes, but I don’t need to right now I just\nneed a goddamn thumbnail.\u003c/p\u003e\n\u003cp\u003eFor the most part I am still slotting these things into the codebase myself,\nbut occasionally I have it do an entire module, and even more rare I pull out\nagents and have it do all the work.  The further away from the code I get, the\nless I care about it and just want it done.\u003c/p\u003e\n\u003ch2 id=\"i-will-laugh-at-this-post-in-2-years\"\u003eI will laugh at this post in 2 years \u003ca href=\"#i-will-laugh-at-this-post-in-2-years\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe way I see it agentic coding is not here to stay, it sucks.  There is one\ntwo ways to go this was a blip in the radar that we laugh at for giving ai\ncompanies all our data for free so they could fuck up our products.  Or they\nactually get pretty good and we all become architects that peek at the code if\nwe really need to.  I think for the second to become true its going to take a\nlot of time, consumer hardware will need to catch up, local llms will need to\nwork a lot better than they do now.  Even if we still need to call out to the\nbig boys for some heavy work getting the context right for them locally would\nmake a huge difference.  Currently local llms are too slow and dumb.\u003c/p\u003e\n\u003cp\u003eSo will this bubble pop or explode, we can only wait to find out.\u003c/p\u003e\n",
      "content_text": "\nIts the year 2025 and we are only a few years into having 6 months to live\nbefore ai takes our jobs, and the big push right now is agents, managing\nagents.  I will fully concede to I'm not doing it right, or a future state gets\nbetter than where we are right now, but right now they kinda suck.\n\n!!! Note Transparency\n\n    I'm sitting offline right now as I write this, These are my feels, no\n    research, no links, no ai, just vibes.\n\n## Chat\n\nChat is what really kicked off ai uses and goes back as old as computers, but\nit always sucked.  Then chatgpt rocked the world with the biggest launch day in\nhistory and showed us that it could actually be pretty good.  Unethically\ntrained on everything they could get their hands on, burning cities worth of\nelectricity to train, and keep training to stay ahead of the competition.  It\ndoes a damn good job.  There are tells, and if you see enough of it there is a\nlot that turns to slop, but if you had never seen it before, there is no way\nyou would assume that it was not a computer.\n\nIt does a damn good job at being average, it can do what seems like everything\nnot related to security and authentication at a pretty average level.  This is\nits super power.  Whenever you are trying to bridge between something you know\nand something new, you can get a pretty good answer, and likely spot the bs in\nwhat you know.\n\n## Agents\n\nNow that our models have gotten better, hardware has gotten bigger, better, and\na lot more of it, we can really expand context windows really wide.  With that\nbrought the use of agents, these tools get context from sources on their own\nand often are given read/write access to your computer.  Depending on the model\nthese things will branch out to make small changes that look no worse than a\nformatter on every goddam line of your codebase.  Except they are not a\nformatter, they are not backed by ast checks.  They do not have any guarantees.\n\n\u003e They take the fun out of creation.\n\nThe emphasis now becomes on the code review.  All you have to do is ask it to\nmakes changes for you.  Bring in your expertise of what changes should be next,\nor even just punt to asking it what comes next.  I've yet to talk to someone\nthat is diligent enough to read everything it spits out in excruciating detail\nto the point that it does not cause significant issues.\n\nYou see here is the thing, its average.  With a little bit of context it can do\naverage work.  It is not an expert.  On the surface this feels fine, making\ncrud endpoints has been done for decades, and average developers crush these\nthings every day no problem.\n\n\u003e It's Average at best\n\nYou know what is not average?  Your knowledge of the use case you are solving.\nYou may not feel like an expert, but given that there are likely about 5 people\nworking in your codebase, you are a fukin expert at that thing.  The average\nperson off the street takes time to onboard, often months, or years for someone\nto really understand the business you are working in.  These things don't have\nthat.\n\n## I'm not letting it in shit that I care avout\n\nI was early to the game to codeium, even used the predecessor for awhile, I was\nearly to chat gpt, I was early to windsurf and the possibilities that agentic\nides brought.  I will be late on letting agents touch my production code bases.\nThe few times I've tried for changes that seem easy enough, but more work than\nwhat I want to do at the time, I've regretted it.  It's only left behind a mess\nthat it cant deal with anymore, runs in circles trying to solve any problem,\nand I'm left with shit that feels like a house of cards that breaks anytime you\ntouch it.\n\n## I will continue to POC\n\nAs much of a mess as these things, make they are super useful to vibe code\nideas, move quickly and try different approaches to a problem.  They let you\nmake a proof of concept that you can get in front of team mates, bosses, or\nusers.\n\nHonestly I still prefer the chat interface.  It feels like a nice balance of\nusing my brain, and knowing that I am punting on something.  Do I need to know\nthe whole `ffmpeg` interface to grab a thumbnail for my webapp, no, would I\nactually like to learn it someday, yes, but I don't need to right now I just\nneed a goddamn thumbnail.\n\nFor the most part I am still slotting these things into the codebase myself,\nbut occasionally I have it do an entire module, and even more rare I pull out\nagents and have it do all the work.  The further away from the code I get, the\nless I care about it and just want it done.\n\n## I will laugh at this post in 2 years\n\nThe way I see it agentic coding is not here to stay, it sucks.  There is one\ntwo ways to go this was a blip in the radar that we laugh at for giving ai\ncompanies all our data for free so they could fuck up our products.  Or they\nactually get pretty good and we all become architects that peek at the code if\nwe really need to.  I think for the second to become true its going to take a\nlot of time, consumer hardware will need to catch up, local llms will need to\nwork a lot better than they do now.  Even if we still need to call out to the\nbig boys for some heavy work getting the context right for them locally would\nmake a huge difference.  Currently local llms are too slow and dumb.\n\nSo will this bubble pop or explode, we can only wait to find out.\n",
      "summary": "Its the year 2025 and we are only a few years into having 6 months to live before ai takes our jobs, and the big push right now is agents, managing agents. I...",
      "date_published": "2025-08-27T10:10:51Z",
      "date_modified": "2025-08-27T10:10:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agentic",
        "agents",
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/doing-some-keeb-modeling-and-thought-this-was-cool/",
      "url": "https://waylonwalker.com/shots/doing-some-keeb-modeling-and-thought-this-was-cool/",
      "title": "Doing Some Keeb Modeling And Thought This Was Cool",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/615149f8-82ea-4c09-b5c9-36ee8b31c73d.png\" class=\"glightbox-link\" aria-label=\"Doing some keeb modeling and thought this was cool\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/615149f8-82ea-4c09-b5c9-36ee8b31c73d.png\" alt=\"Doing some keeb modeling and thought this was cool\"/ data-glightbox=\"description: Doing some keeb modeling and thought this was cool\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe inside of a keyboard before the tools are used to cut away switch cutouts in the board.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Doing some keeb modeling and thought this was cool](https://dropper.waylonwalker.com/api/file/615149f8-82ea-4c09-b5c9-36ee8b31c73d.png)\n\n\u003e The inside of a keyboard before the tools are used to cut away switch cutouts in the board.\n",
      "summary": "The inside of a keyboard before the tools are used to cut away switch cutouts in the board.",
      "image": "https://dropper.waylonwalker.com/api/file/615149f8-82ea-4c09-b5c9-36ee8b31c73d.png",
      "date_published": "2025-08-26T20:33:37Z",
      "date_modified": "2025-08-26T20:33:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/chrisbuilds-terminaltexteffects/",
      "url": "https://waylonwalker.com/chrisbuilds-terminaltexteffects/",
      "title": "⭐ ChrisBuilds terminaltexteffects",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/ChrisBuilds\" 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\"\u003eChrisBuilds’s\u003c/a\u003e project \u003ca href=\"https://github.com/ChrisBuilds/terminaltexteffects\" 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\"\u003eterminaltexteffects\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eTerminalTextEffects (TTE) is a terminal visual effects engine, application, and Python library.\u003c/p\u003e\n",
      "content_text": "\nI like [ChrisBuilds's](https://github.com/ChrisBuilds) project [terminaltexteffects](https://github.com/ChrisBuilds/terminaltexteffects).\n\nTerminalTextEffects (TTE) is a terminal visual effects engine, application, and Python library.\n",
      "summary": "I like ChrisBuilds's project terminaltexteffects.",
      "date_published": "2025-08-26T19:38:14Z",
      "date_modified": "2025-08-26T19:38:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/miguelgrinberg-python-socketio/",
      "url": "https://waylonwalker.com/miguelgrinberg-python-socketio/",
      "title": "⭐ miguelgrinberg python-socketio",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/miguelgrinberg/python-socketio\" 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\"\u003epython-socketio\u003c/a\u003e by \u003ca href=\"https://github.com/miguelgrinberg\" 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\"\u003emiguelgrinberg\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003ePython Socket.IO server and client\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [python-socketio](https://github.com/miguelgrinberg/python-socketio) by [miguelgrinberg](https://github.com/miguelgrinberg), and it's truly impressive.\n\nPython Socket.IO server and client\n",
      "summary": "I recently discovered python-socketio by miguelgrinberg, and it's truly impressive.",
      "date_published": "2025-08-26T13:07:08Z",
      "date_modified": "2025-08-26T13:07:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-811/",
      "url": "https://waylonwalker.com/thought-811/",
      "title": "💭 GitHub - cortesi/modd: A flexible developer tool that runs pro...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/cortesi/modd\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/778d6536d9a135b456aadc9abc4b3ba11524b3b90a967138fe166abe2a89882a/cortesi/modd\" alt=\"GitHub - cortesi/modd: A flexible developer tool that runs processes and responds to filesystem changes — A flexible developer tool that runs processes and responds to filesystem changes - cortesi/modd\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - cortesi/modd: A flexible developer tool that runs processes and responds to filesystem changes — A flexible developer tool that runs processes and responds to filesystem changes - cortesi/modd\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - cortesi/modd: A flexible developer tool that runs processes and responds to filesystem changes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA flexible developer tool that runs processes and responds to filesystem changes - cortesi/modd\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGave modd a try today, and I like it, its something I am going to consider slotting right into my \u003ca href=\"https://github.com/casey/just\" 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\"\u003ejustfiles\u003c/a\u003e.  Gave it a try and it seems to work really well out of the box and easy to configure.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/cortesi/modd\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/778d6536d9a135b456aadc9abc4b3ba11524b3b90a967138fe166abe2a89882a/cortesi/modd\" alt=\"GitHub - cortesi/modd: A flexible developer tool that runs processes and responds to filesystem changes — A flexible developer tool that runs processes and responds to filesystem changes - cortesi/modd\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - cortesi/modd: A flexible developer tool that runs processes and responds to filesystem changes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA flexible developer tool that runs processes and responds to filesystem changes - cortesi/modd\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGave modd a try today, and I like it, its something I am going to consider slotting right into my [justfiles](https://github.com/casey/just).  Gave it a try and it seems to work really well out of the box and easy to configure.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/cortesi/modd",
      "date_published": "2025-08-25T15:40:39Z",
      "date_modified": "2025-08-25T15:40:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-810/",
      "url": "https://waylonwalker.com/thought-810/",
      "title": "💭 combos only on default layer · WaylonWalker/zmk-config-42block...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/zmk-config-42block/commit/2398fc73b247b9f491e14b605fef1c6910939298\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/97de1a8f38e0fae5e170c4a79790a1fdfac2ce59fecdbf55faa8ade186c75e66/WaylonWalker/zmk-config-42block/commit/2398fc73b247b9f491e14b605fef1c6910939298\" alt=\"combos only on default layer · WaylonWalker/zmk-config-42block@2398fc7 — Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: combos only on default layer · WaylonWalker/zmk-config-42block@2398fc7 — Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecombos only on default layer · WaylonWalker/zmk-config-42block@2398fc7\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFighting some parens in hollow knight lead me to subtle little pauses when playing, I’m swapping combos to only work on the default layer, except for grave, I must have it for minecraft.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/zmk-config-42block/commit/2398fc73b247b9f491e14b605fef1c6910939298\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/97de1a8f38e0fae5e170c4a79790a1fdfac2ce59fecdbf55faa8ade186c75e66/WaylonWalker/zmk-config-42block/commit/2398fc73b247b9f491e14b605fef1c6910939298\" alt=\"combos only on default layer · WaylonWalker/zmk-config-42block@2398fc7 — Contribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecombos only on default layer · WaylonWalker/zmk-config-42block@2398fc7\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to WaylonWalker/zmk-config-42block development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFighting some parens in hollow knight lead me to subtle little pauses when playing, I'm swapping combos to only work on the default layer, except for grave, I must have it for minecraft.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/zmk-config-42block/commit/2398fc73b247b9f491e14b605fef1c6910939298",
      "date_published": "2025-08-25T12:58:37Z",
      "date_modified": "2025-08-25T12:58:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/modd/",
      "url": "https://waylonwalker.com/modd/",
      "title": "modd",
      "content_html": "\u003cp\u003eToday I gave \u003ca href=\"https://github.com/cortesi/modd\" 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\"\u003emodd\u003c/a\u003e a try, and it seems like a\ngood file watcher executor.  I tried using libnotify to send desktop\nnotifications, but all I got was modd, I might not have notifications setup\nright on the awesomewm machine.\u003c/p\u003e\n\u003cp\u003econfig goes in \u003ccode\u003emodd.conf\u003c/code\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-config\"\u003e**/*.py {\n  # check formatting via ruff\n  prep: ruff format --check .\n\n  # check docstring formatting\n  prep: pydocstyle .\n  #\n  # # check type hints via ty\n  prep: ty check .\n  #\n  # # run linter via ruff\n  prep: ruff check .\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI installed it using installer from jpillora, pulling pre-built binaries right\nout of the github repo.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://i.jpillora.com/cortesi/modd \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThen you can install it, and on file change it will run the commands you\nconfigured.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emodd\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I gave [modd](https://github.com/cortesi/modd) a try, and it seems like a\ngood file watcher executor.  I tried using libnotify to send desktop\nnotifications, but all I got was modd, I might not have notifications setup\nright on the awesomewm machine.\n\nconfig goes in `modd.conf`\n\n``` config\n**/*.py {\n  # check formatting via ruff\n  prep: ruff format --check .\n\n  # check docstring formatting\n  prep: pydocstyle .\n  #\n  # # check type hints via ty\n  prep: ty check .\n  #\n  # # run linter via ruff\n  prep: ruff check .\n}\n```\n\nI installed it using installer from jpillora, pulling pre-built binaries right\nout of the github repo.\n\n``` bash\ncurl https://i.jpillora.com/cortesi/modd | bash\n```\n\nThen you can install it, and on file change it will run the commands you\nconfigured.\n\n``` bash\nmodd\n```\n",
      "summary": "Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...",
      "date_published": "2025-08-25T10:48:01Z",
      "date_modified": "2025-08-25T10:48:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-25-notes/",
      "url": "https://waylonwalker.com/2025-08-25-notes/",
      "title": "2025-08-25 Notes",
      "content_html": "\u003cp\u003eGave \u003ca href=\"/modd/\" class=\"wikilink\" data-title=\"modd\" data-description=\"Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...\" data-date=\"2025-08-25\" data-preview=\"Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...\"\u003emodd\u003c/a\u003e a try and it seems pretty good, will likely be slotting it in\nnext to my \u003ca href=\"https://just.systems/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/just.systems.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/just.systems.ico\" class=\"has-avatar  has-avatar-before\"\u003ejustfile\u003c/a\u003e usage.\u003c/p\u003e\n\u003cp\u003eGave \u003ca href=\"https://github.com/nkantar/sus\" 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\"\u003esus\u003c/a\u003e a try, but it lacked the\nconfigurability and flexibility I was looking for.  For now I will stick to\n\u003ca href=\"https://markata.dev/markata/plugins/redirects/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/markata.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/markata.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003emarkata-redirects\u003c/a\u003e plugin.\u003c/p\u003e\n",
      "content_text": "\nGave \u003ca href=\"/modd/\" class=\"wikilink\" data-title=\"modd\" data-description=\"Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...\" data-date=\"2025-08-25\"\u003emodd\u003c/a\u003e a try and it seems pretty good, will likely be slotting it in\nnext to my [justfile](https://just.systems/) usage.\n\nGave [sus](https://github.com/nkantar/sus) a try, but it lacked the\nconfigurability and flexibility I was looking for.  For now I will stick to\n[markata-redirects](https://markata.dev/markata/plugins/redirects/) plugin.\n\n",
      "summary": "Gave modd a try and it seems pretty good, will likely be slotting it in next to my justfile usage.",
      "date_published": "2025-08-25T10:45:08Z",
      "date_modified": "2025-08-25T10:45:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-809/",
      "url": "https://waylonwalker.com/thought-809/",
      "title": "💭 The Death of the User Interface",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-github\" data-needs-code-css=\"true\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003cdiv data-needs-code-css=\"true\"\u003e\u003cdiv class=\"embed-gist\"\u003e\n  \u003cdiv class=\"embed-gist-header\"\u003e\n    \u003ca href=\"https://gist.github.com/0xs34n/a5738db1cc24495e69b6d6c08a451890\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/gist.github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/gist.github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eTHE_DEATH_OF_THE_USER_INTERFACE.md\u003c/a\u003e\n    \u003cspan class=\"embed-gist-language\"\u003emarkdown\u003c/span\u003e\n  \u003c/div\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003e# The Death of the User Interface\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003e**TL;DR:** We\u0026#39;re witnessing the end of graphical user interfaces. AI agents like Claude Code are eliminating the need for windows, menus, and clicks, replacing them with natural language. The computer is finally learning to speak human, not the other way around.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🔮 A Personal Revelation\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLast week, I realized something profound: \u003cspan class=\"gs\"\u003e**I haven\u0026#39;t opened Finder in months.**\u003c/span\u003e Not once.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWhere I once clicked through nested folders, dragged and dropped files, and navigated hierarchical menus, I now simply tell Claude Code exactly what I need:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e _\u0026#34;Find all the test files modified in the last week\u0026#34;_\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e _\u0026#34;Move the old backups to archive\u0026#34;_\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe commands execute instantly, precisely, without me ever seeing a window, icon, or folder.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eThis isn\u0026#39;t just about convenience. It\u0026#39;s a fundamental shift in how humans interact with computers, and it signals the beginning of the end for user interfaces as we know them.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🚴 → 🚀 The Bicycle That Became a Teleporter\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIn 1990, Steve Jobs famously described computers as \u0026#34;bicycles for the mind,\u0026#34; drawing from a Scientific American study showing that humans on bicycles were the most efficient locomotors on Earth. The metaphor was perfect for its time: computers amplified human cognitive abilities just as bicycles amplified our physical capabilities.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBut bicycles still require you to:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Pedal** the mechanism\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Steer** the direction\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Navigate** the terrain\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Learn** the balance\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTraditional user interfaces work the same way. They\u0026#39;re tools that amplify our abilities, but only after we learn their language, their layouts, their logic.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003e**What we have now with AI agents isn\u0026#39;t a bicycle anymore. It\u0026#39;s a teleporter.** You simply state your destination, and you arrive.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 📜 From Xerox PARC to Natural Language: A 50-Year Arc\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### The Timeline of Interface Evolution\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1964**\u003c/span\u003e → Douglas Engelbart invents the computer mouse at Stanford Research Institute\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1973**\u003c/span\u003e → Xerox PARC develops the Alto, the first computer with a GUI\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1979**\u003c/span\u003e → Steve Jobs sees the Alto, immediately grasps its revolutionary potential\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1984**\u003c/span\u003e → Macintosh launches, bringing GUI to the masses\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**2024**\u003c/span\u003e → AI agents begin replacing graphical interfaces entirely\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThat language dominated for five decades. Windows, Mac OS, and even modern web applications all speak variations of it: \u003cspan class=\"ge\"\u003e_point, click, drag, drop, menu, submenu, dialog box, button._\u003c/span\u003e We became so fluent in this language that we forgot it was a language at all.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### The Abstraction Layer Pattern\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEvery abstraction layer in computing eventually gets replaced by a higher-level one:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| \u003cspan class=\"gs\"\u003e**Era**\u003c/span\u003e | \u003cspan class=\"gs\"\u003e**From**\u003c/span\u003e            | \u003cspan class=\"gs\"\u003e**To**\u003c/span\u003e                             |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| ------- | ------------------- | ---------------------------------- |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 1950s   | Machine code        | → Assembly language                |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 1960s   | Assembly            | → High-level programming languages |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 1980s   | Command line        | → Graphical user interfaces        |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 2000s   | Native apps         | → Web applications                 |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 2020s   | \u003cspan class=\"gs\"\u003e**User interfaces**\u003c/span\u003e | \u003cspan class=\"ge\"\u003e**\u003c/span\u003e→ Conversational AI agents**     |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eEach transition follows the same pattern: what once required specialized knowledge becomes accessible through more natural, intuitive interaction.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 👻 The Invisible Operating System\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTraditional operating systems: Windows, macOS, Linux, are abstractions over hardware. Web applications are abstractions over REST APIs. Both require user interfaces because they need to translate between human intent and machine execution.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**AI agents represent something fundamentally different:**\u003c/span\u003e they\u0026#39;re abstractions that understand human intent directly. No translation required.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### Consider the Mental Journey of a Simple Task\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e🖱️ Traditional UI Approach\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e1.\u003c/span\u003e Open Finder/Explorer \u003cspan class=\"ge\"\u003e_(remember where it is)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e2.\u003c/span\u003e Navigate to directory \u003cspan class=\"ge\"\u003e_(remember the path)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e3.\u003c/span\u003e Scan through files \u003cspan class=\"ge\"\u003e_(parse visual information)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e4.\u003c/span\u003e Select multiple files \u003cspan class=\"ge\"\u003e_(remember shortcuts)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e5.\u003c/span\u003e Right-click for menu \u003cspan class=\"ge\"\u003e_(know this exists)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e6.\u003c/span\u003e Choose \u0026#34;Move to...\u0026#34; \u003cspan class=\"ge\"\u003e_(understand terminology)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e7.\u003c/span\u003e Navigate to destination \u003cspan class=\"ge\"\u003e_(remember another path)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e8.\u003c/span\u003e Confirm operation \u003cspan class=\"ge\"\u003e_(hope you got it right)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e🗣️ AI Agent Approach\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e1.\u003c/span\u003e \u0026#34;Move all PDF files from Downloads to Documents/Reports\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**Done.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eThe difference isn\u0026#39;t just efficiency, it\u0026#39;s cognitive load. With traditional interfaces, you\u0026#39;re translating your intent into the computer\u0026#39;s language. With AI agents, the computer learns your language instead.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🧠 The Mental Load Revolution\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEvery interface element, every button, menu, icon, and widget, is a \u003cspan class=\"gs\"\u003e**tiny cognitive tax**\u003c/span\u003e. Even the most intuitive interface requires you to:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Understand its visual language\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Remember its organizational structure\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Learn its interaction patterns\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Maintain mental models of its state\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis is what UX designers call \u003cspan class=\"ge\"\u003e**\u003c/span\u003e\u0026#34;extraneous cognitive load\u0026#34;**. Mental effort spent on using the tool rather than accomplishing the task.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eWhen you tell Claude Code to \u0026#34;set up a new Python project with pytest and black pre-configured,\u0026#34; you\u0026#39;re expressing pure intent. The mental energy you would have spent on navigation can be redirected to actual problem-solving.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## ⚡ The Present: Early Adopters and Edge Cases\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWe\u0026#39;re living through the transition right now.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### What\u0026#39;s Happening in 2024\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **AIOS** → Embedding LLMs directly into operating systems\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Claude Code** → Replacing entire categories of developer tools\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Cursor \u0026amp; Copilot** → Making IDEs conversational\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Warp Agent Mode** → LLMs in the terminal for multi-step workflows\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### What I No Longer Do\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eI see it in my own work every day. I no longer:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Browse through file explorers  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Click through git GUIs  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Navigate package manager interfaces  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Hunt through documentation sites  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Configure tools through preference panes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstead, I describe what I want, and it happens. \u003cspan class=\"gs\"\u003e**The interface hasn\u0026#39;t been simplified, it\u0026#39;s been eliminated.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🍎 The Future Steve Jobs Glimpsed\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003e\u0026#34;Ultimately computers are going to be a tool for communication. Not computation, not productivity. Communication.\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ge\"\u003e\u0026gt; — Steve Jobs, 1983 International Design Conference\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAt that conference in Aspen, a 28-year-old Jobs made predictions that seemed like science fiction:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e Portable computers with wireless connections\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e Instant access to remote databases\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e Devices as primary means of communication\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHe was right about all of it, but even his vision was constrained by the paradigm of his time. He imagined better interfaces, more intuitive interactions, simpler designs.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**He couldn\u0026#39;t imagine no interface at all.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eYet in that quote above, Jobs understood something fundamental: the real revolution would come when computers could understand us as naturally as we understand each other.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eThat future is arriving. The question isn\u0026#39;t whether AI will replace user interfaces, but how quickly and how completely.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🔄 The Last Interface\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThere\u0026#39;s an irony in writing about the death of user interfaces, or rather, there \u003cspan class=\"gs\"\u003e**was**\u003c/span\u003e. This article itself is proof of the transition: generated through conversation with Claude Code, shaped by human intent rather than human interface manipulation. I provided the ideas and direction; the AI handled the execution. \u003cspan class=\"gs\"\u003e**The future isn\u0026#39;t coming, it\u0026#39;s already here, manifesting through the very words you\u0026#39;re reading.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSoon, articles like this won\u0026#39;t be \u0026#34;written\u0026#34; in the traditional sense. They\u0026#39;ll be conversed into existence, with AI agents handling not just the typing but the research, fact-checking, formatting, and publishing. The tool will disappear into the task.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### The Holdouts and the Inevitable\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSome will mourn this loss. There\u0026#39;s something satisfying about direct manipulation, about seeing and controlling every step. Just as some still prefer command lines to GUIs, some will always prefer clicking to conversing.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBut for most of us, the appeal of \u003cspan class=\"gs\"\u003e**zero cognitive load**\u003c/span\u003e will be irresistible.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eWhy learn an interface when you can just say what you want?  \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eWhy navigate when you can simply arrive?\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🎯 Conclusion: After the Interface\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWe stand at an inflection point. For fifty years, ever since Xerox PARC invented the GUI, we\u0026#39;ve been refining the same basic paradigm: \u003cspan class=\"gs\"\u003e**humans learning to speak computer**\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNow, \u003cspan class=\"gs\"\u003e**computers are learning to speak human**\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe death of the user interface doesn\u0026#39;t mean the death of design or user experience. If anything, it makes them more important. When the interface disappears, what remains is pure interaction design: understanding human intent, anticipating needs, handling edge cases gracefully.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe challenge shifts from:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ❌ \u003cspan class=\"ge\"\u003e_\u0026#34;How do we make this button more obvious?\u0026#34;_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✅ \u003cspan class=\"ge\"\u003e**\u003c/span\u003e\u0026#34;How do we understand what the user really wants?\u0026#34;**\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eSteve Jobs gave us bicycles for the mind.  \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eAI agents are giving us something else entirely: **minds that understand our minds.**  \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eNo pedaling required.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**The user interface is dying, and that\u0026#39;s the most user-friendly thing that could possibly happen.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ge\"\u003e_What do you think? Are we witnessing the end of user interfaces, or just another evolution? How has AI changed your own relationship with traditional software interfaces?_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is an insane level of agentic llm use, the author claims to not even use his filesystem anymore, its too cumbersome to find where downloads and documents are and way too easy to ask an agent to move all pdf’s from downloads to documents.\u003c/p\u003e\n\u003cp\u003eThis scares me on multiple levels, theres the epidemic of ai datacenters and ai companies burning cash, burning through gpu’s and api calls to a giant data center just to move files sounds absolutely insane to me.\u003c/p\u003e\n\u003cp\u003eThen there is the level of accuracy.  There’s a level of interpretation that happens with english that does not happen in code, code generally does what it does repeatably.  The examples of “Move old backups to archive” is so open for interpretation that its ready to ruin your day, which backup, which archive, how old?  Dude is ready to loose his files.\u003c/p\u003e\n\u003cp\u003eLast is privacy, there is going to be a privacy epidemic that is going to pwn so many people giving these things full access to email, chat, ALL of YOUR FILES, and computer, your whole network.\u003c/p\u003e\n\u003cp\u003eLook I get it this is where things are going, but dude is early, like too early.  These things need to become far more accurate, less power hungry, and run locally before I give up my whole filesystem.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-github\" data-needs-code-css=\"true\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003cdiv data-needs-code-css=\"true\"\u003e\u003cdiv class=\"embed-gist\"\u003e\n  \u003cdiv class=\"embed-gist-header\"\u003e\n    \u003ca href=\"https://gist.github.com/0xs34n/a5738db1cc24495e69b6d6c08a451890\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eTHE_DEATH_OF_THE_USER_INTERFACE.md\u003c/a\u003e\n    \u003cspan class=\"embed-gist-language\"\u003emarkdown\u003c/span\u003e\n  \u003c/div\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gh\"\u003e# The Death of the User Interface\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003e**TL;DR:** We\u0026#39;re witnessing the end of graphical user interfaces. AI agents like Claude Code are eliminating the need for windows, menus, and clicks, replacing them with natural language. The computer is finally learning to speak human, not the other way around.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🔮 A Personal Revelation\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eLast week, I realized something profound: \u003cspan class=\"gs\"\u003e**I haven\u0026#39;t opened Finder in months.**\u003c/span\u003e Not once.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWhere I once clicked through nested folders, dragged and dropped files, and navigated hierarchical menus, I now simply tell Claude Code exactly what I need:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e _\u0026#34;Find all the test files modified in the last week\u0026#34;_\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e _\u0026#34;Move the old backups to archive\u0026#34;_\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe commands execute instantly, precisely, without me ever seeing a window, icon, or folder.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eThis isn\u0026#39;t just about convenience. It\u0026#39;s a fundamental shift in how humans interact with computers, and it signals the beginning of the end for user interfaces as we know them.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🚴 → 🚀 The Bicycle That Became a Teleporter\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIn 1990, Steve Jobs famously described computers as \u0026#34;bicycles for the mind,\u0026#34; drawing from a Scientific American study showing that humans on bicycles were the most efficient locomotors on Earth. The metaphor was perfect for its time: computers amplified human cognitive abilities just as bicycles amplified our physical capabilities.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBut bicycles still require you to:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Pedal** the mechanism\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Steer** the direction\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Navigate** the terrain\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Learn** the balance\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTraditional user interfaces work the same way. They\u0026#39;re tools that amplify our abilities, but only after we learn their language, their layouts, their logic.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003e**What we have now with AI agents isn\u0026#39;t a bicycle anymore. It\u0026#39;s a teleporter.** You simply state your destination, and you arrive.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 📜 From Xerox PARC to Natural Language: A 50-Year Arc\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### The Timeline of Interface Evolution\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1964**\u003c/span\u003e → Douglas Engelbart invents the computer mouse at Stanford Research Institute\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1973**\u003c/span\u003e → Xerox PARC develops the Alto, the first computer with a GUI\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1979**\u003c/span\u003e → Steve Jobs sees the Alto, immediately grasps its revolutionary potential\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**1984**\u003c/span\u003e → Macintosh launches, bringing GUI to the masses\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**2024**\u003c/span\u003e → AI agents begin replacing graphical interfaces entirely\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThat language dominated for five decades. Windows, Mac OS, and even modern web applications all speak variations of it: \u003cspan class=\"ge\"\u003e_point, click, drag, drop, menu, submenu, dialog box, button._\u003c/span\u003e We became so fluent in this language that we forgot it was a language at all.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### The Abstraction Layer Pattern\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEvery abstraction layer in computing eventually gets replaced by a higher-level one:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| \u003cspan class=\"gs\"\u003e**Era**\u003c/span\u003e | \u003cspan class=\"gs\"\u003e**From**\u003c/span\u003e            | \u003cspan class=\"gs\"\u003e**To**\u003c/span\u003e                             |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| ------- | ------------------- | ---------------------------------- |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 1950s   | Machine code        | → Assembly language                |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 1960s   | Assembly            | → High-level programming languages |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 1980s   | Command line        | → Graphical user interfaces        |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 2000s   | Native apps         | → Web applications                 |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e| 2020s   | \u003cspan class=\"gs\"\u003e**User interfaces**\u003c/span\u003e | \u003cspan class=\"ge\"\u003e**\u003c/span\u003e→ Conversational AI agents**     |\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eEach transition follows the same pattern: what once required specialized knowledge becomes accessible through more natural, intuitive interaction.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 👻 The Invisible Operating System\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTraditional operating systems: Windows, macOS, Linux, are abstractions over hardware. Web applications are abstractions over REST APIs. Both require user interfaces because they need to translate between human intent and machine execution.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**AI agents represent something fundamentally different:**\u003c/span\u003e they\u0026#39;re abstractions that understand human intent directly. No translation required.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### Consider the Mental Journey of a Simple Task\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e🖱️ Traditional UI Approach\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e1.\u003c/span\u003e Open Finder/Explorer \u003cspan class=\"ge\"\u003e_(remember where it is)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e2.\u003c/span\u003e Navigate to directory \u003cspan class=\"ge\"\u003e_(remember the path)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e3.\u003c/span\u003e Scan through files \u003cspan class=\"ge\"\u003e_(parse visual information)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e4.\u003c/span\u003e Select multiple files \u003cspan class=\"ge\"\u003e_(remember shortcuts)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e5.\u003c/span\u003e Right-click for menu \u003cspan class=\"ge\"\u003e_(know this exists)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e6.\u003c/span\u003e Choose \u0026#34;Move to...\u0026#34; \u003cspan class=\"ge\"\u003e_(understand terminology)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e7.\u003c/span\u003e Navigate to destination \u003cspan class=\"ge\"\u003e_(remember another path)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e8.\u003c/span\u003e Confirm operation \u003cspan class=\"ge\"\u003e_(hope you got it right)_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e🗣️ AI Agent Approach\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e1.\u003c/span\u003e \u0026#34;Move all PDF files from Downloads to Documents/Reports\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**Done.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eThe difference isn\u0026#39;t just efficiency, it\u0026#39;s cognitive load. With traditional interfaces, you\u0026#39;re translating your intent into the computer\u0026#39;s language. With AI agents, the computer learns your language instead.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🧠 The Mental Load Revolution\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEvery interface element, every button, menu, icon, and widget, is a \u003cspan class=\"gs\"\u003e**tiny cognitive tax**\u003c/span\u003e. Even the most intuitive interface requires you to:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Understand its visual language\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Remember its organizational structure\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Learn its interaction patterns\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✓ Maintain mental models of its state\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThis is what UX designers call \u003cspan class=\"ge\"\u003e**\u003c/span\u003e\u0026#34;extraneous cognitive load\u0026#34;**. Mental effort spent on using the tool rather than accomplishing the task.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eWhen you tell Claude Code to \u0026#34;set up a new Python project with pytest and black pre-configured,\u0026#34; you\u0026#39;re expressing pure intent. The mental energy you would have spent on navigation can be redirected to actual problem-solving.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## ⚡ The Present: Early Adopters and Edge Cases\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWe\u0026#39;re living through the transition right now.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### What\u0026#39;s Happening in 2024\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **AIOS** → Embedding LLMs directly into operating systems\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Claude Code** → Replacing entire categories of developer tools\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Cursor \u0026amp; Copilot** → Making IDEs conversational\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e **Warp Agent Mode** → LLMs in the terminal for multi-step workflows\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### What I No Longer Do\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eI see it in my own work every day. I no longer:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Browse through file explorers  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Click through git GUIs  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Navigate package manager interfaces  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Hunt through documentation sites  \n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❌ Configure tools through preference panes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstead, I describe what I want, and it happens. \u003cspan class=\"gs\"\u003e**The interface hasn\u0026#39;t been simplified, it\u0026#39;s been eliminated.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🍎 The Future Steve Jobs Glimpsed\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003e\u0026#34;Ultimately computers are going to be a tool for communication. Not computation, not productivity. Communication.\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ge\"\u003e\u0026gt; — Steve Jobs, 1983 International Design Conference\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAt that conference in Aspen, a 28-year-old Jobs made predictions that seemed like science fiction:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e Portable computers with wireless connections\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e Instant access to remote databases\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e Devices as primary means of communication\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHe was right about all of it, but even his vision was constrained by the paradigm of his time. He imagined better interfaces, more intuitive interactions, simpler designs.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**He couldn\u0026#39;t imagine no interface at all.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eYet in that quote above, Jobs understood something fundamental: the real revolution would come when computers could understand us as naturally as we understand each other.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eThat future is arriving. The question isn\u0026#39;t whether AI will replace user interfaces, but how quickly and how completely.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🔄 The Last Interface\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThere\u0026#39;s an irony in writing about the death of user interfaces, or rather, there \u003cspan class=\"gs\"\u003e**was**\u003c/span\u003e. This article itself is proof of the transition: generated through conversation with Claude Code, shaped by human intent rather than human interface manipulation. I provided the ideas and direction; the AI handled the execution. \u003cspan class=\"gs\"\u003e**The future isn\u0026#39;t coming, it\u0026#39;s already here, manifesting through the very words you\u0026#39;re reading.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSoon, articles like this won\u0026#39;t be \u0026#34;written\u0026#34; in the traditional sense. They\u0026#39;ll be conversed into existence, with AI agents handling not just the typing but the research, fact-checking, formatting, and publishing. The tool will disappear into the task.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e### The Holdouts and the Inevitable\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSome will mourn this loss. There\u0026#39;s something satisfying about direct manipulation, about seeing and controlling every step. Just as some still prefer command lines to GUIs, some will always prefer clicking to conversing.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBut for most of us, the appeal of \u003cspan class=\"gs\"\u003e**zero cognitive load**\u003c/span\u003e will be irresistible.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eWhy learn an interface when you can just say what you want?  \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eWhy navigate when you can simply arrive?\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gu\"\u003e## 🎯 Conclusion: After the Interface\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWe stand at an inflection point. For fifty years, ever since Xerox PARC invented the GUI, we\u0026#39;ve been refining the same basic paradigm: \u003cspan class=\"gs\"\u003e**humans learning to speak computer**\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNow, \u003cspan class=\"gs\"\u003e**computers are learning to speak human**\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe death of the user interface doesn\u0026#39;t mean the death of design or user experience. If anything, it makes them more important. When the interface disappears, what remains is pure interaction design: understanding human intent, anticipating needs, handling edge cases gracefully.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe challenge shifts from:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ❌ \u003cspan class=\"ge\"\u003e_\u0026#34;How do we make this button more obvious?\u0026#34;_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e-\u003c/span\u003e ✅ \u003cspan class=\"ge\"\u003e**\u003c/span\u003e\u0026#34;How do we understand what the user really wants?\u0026#34;**\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eSteve Jobs gave us bicycles for the mind.  \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eAI agents are giving us something else entirely: **minds that understand our minds.**  \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e\u0026gt; \u003c/span\u003e\u003cspan class=\"ge\"\u003eNo pedaling required.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gs\"\u003e**The user interface is dying, and that\u0026#39;s the most user-friendly thing that could possibly happen.**\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e---\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ge\"\u003e_What do you think? Are we witnessing the end of user interfaces, or just another evolution? How has AI changed your own relationship with traditional software interfaces?_\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is an insane level of agentic llm use, the author claims to not even use his filesystem anymore, its too cumbersome to find where downloads and documents are and way too easy to ask an agent to move all pdf's from downloads to documents.\n\nThis scares me on multiple levels, theres the epidemic of ai datacenters and ai companies burning cash, burning through gpu's and api calls to a giant data center just to move files sounds absolutely insane to me.\n\nThen there is the level of accuracy.  There's a level of interpretation that happens with english that does not happen in code, code generally does what it does repeatably.  The examples of \"Move old backups to archive\" is so open for interpretation that its ready to ruin your day, which backup, which archive, how old?  Dude is ready to loose his files.\n\nLast is privacy, there is going to be a privacy epidemic that is going to pwn so many people giving these things full access to email, chat, ALL of YOUR FILES, and computer, your whole network.\n\nLook I get it this is where things are going, but dude is early, like too early.  These things need to become far more accurate, less power hungry, and run locally before I give up my whole filesystem.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://gist.github.com/0xs34n/a5738db1cc24495e69b6d6c08a451890",
      "date_published": "2025-08-25T01:48:19Z",
      "date_modified": "2025-08-25T01:48:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-808/",
      "url": "https://waylonwalker.com/thought-808/",
      "title": "💭 Why everyone is quitting social media - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"zN-rElTzR_4\" title=\"Why everyone is quitting social media\" playlabel=\"Play: Why everyone is quitting social media\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn, social media is at an all time low.  I’ve felt all of these issues and when I got a new phone I started fresh, I didn’t install one social media app.  Luckily Youtube has remained solid for me.  Yes shorts are a bit less what I came for and more addicting content they \u003cem\u003ehad\u003c/em\u003e to do in order to keep up.  There are some legit good commedians, a bit of good knowledge and a bunch of trash that is hard to look away from on shorts.  I still find myself able to find content I enjoy and signed up for on YouTube.  I feel like I get a one way relationship with someone similar to a TV show or news anchor of old media.\u003c/p\u003e\n\u003cp\u003eSocial Media has morphed from follows likes and similar, to viral posts by creators I don’t recognize.  posting and immediately getting like by two \u003cstrong\u003ehot\u003c/strong\u003e women with accounts created this week.  The rest of the real creators left on there are stuck trying to keep up, echo viral trends, trying to keep up the content treadmill.   A few come through, but most feel somewhat forced.  A lot of it is ai generated, and whats not mostly doesn’t feel that human anyways.\u003c/p\u003e\n\u003cp\u003eThe people on here seem to really tie the internet to social media and are ready to quit the internet.  I think there is more to the internet, we can find each other, but setting up rss feeds, following others, and scrolling their own website lacks that dopamine hit social media has right now.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"zN-rElTzR_4\" title=\"Why everyone is quitting social media\" playlabel=\"Play: Why everyone is quitting social media\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDamn, social media is at an all time low.  I've felt all of these issues and when I got a new phone I started fresh, I didn't install one social media app.  Luckily Youtube has remained solid for me.  Yes shorts are a bit less what I came for and more addicting content they _had_ to do in order to keep up.  There are some legit good commedians, a bit of good knowledge and a bunch of trash that is hard to look away from on shorts.  I still find myself able to find content I enjoy and signed up for on YouTube.  I feel like I get a one way relationship with someone similar to a TV show or news anchor of old media.\n\nSocial Media has morphed from follows likes and similar, to viral posts by creators I don't recognize.  posting and immediately getting like by two **hot** women with accounts created this week.  The rest of the real creators left on there are stuck trying to keep up, echo viral trends, trying to keep up the content treadmill.   A few come through, but most feel somewhat forced.  A lot of it is ai generated, and whats not mostly doesn't feel that human anyways.\n\nThe people on here seem to really tie the internet to social media and are ready to quit the internet.  I think there is more to the internet, we can find each other, but setting up rss feeds, following others, and scrolling their own website lacks that dopamine hit social media has right now.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=zN-rElTzR_4",
      "date_published": "2025-08-25T01:36:35Z",
      "date_modified": "2025-08-25T01:36:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-23-notes/",
      "url": "https://waylonwalker.com/2025-08-23-notes/",
      "title": "2025-08-23 Notes",
      "content_html": "\u003ch2 id=\"knife-sharpener\"\u003eKnife Sharpener \u003ca href=\"#knife-sharpener\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eToday, some great work on the knife sharpener re-design.  I’ve been using the\nsame one since I first got my ender 3 3d printer, and have wanted to make some\nchanges ever since.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png\" class=\"glightbox-link\" aria-label=\"Helmet Hidden In Design\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png\" alt=\"Helmet Hidden In Design\"/ data-glightbox=\"description: Helmet Hidden In Design\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eWyatt sat with me through the design, I probably would not have gone this deep without him, he thought the helmet look was hilarious\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" class=\"glightbox-link\" aria-label=\"Knife Sharpener Double Hinge First Try\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" type=\"video/mp4\"\u003eKnife Sharpener Double Hinge First Try\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eNotice one of the biggest problems with this one here is how much is slides around\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png\" class=\"glightbox-link\" aria-label=\"Knife Sharpener Double Hinge Wing Nut\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png\" alt=\"Knife Sharpener Double Hinge Wing Nut\"/ data-glightbox=\"description: Knife Sharpener Double Hinge Wing Nut\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThis wing nut really set it apart\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"hollow-knight\"\u003eHollow Knight \u003ca href=\"#hollow-knight\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eProgress on the Hollow Knight Keeb Run.  SILKSONG in 2 WEEKS!!\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" class=\"glightbox-link\" aria-label=\"Getting The Lumafly Lantern In My Hollow Knight Keeb Run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" type=\"video/mp4\"\u003eGetting The Lumafly Lantern In My Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" class=\"glightbox-link\" aria-label=\"Unlocking Royal Waterways In Hollow Knight Keeb Run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" type=\"video/mp4\"\u003eUnlocking Royal Waterways In Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" class=\"glightbox-link\" aria-label=\"Entering Royal Waterway Hollow Knight Keeb Run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" type=\"video/mp4\"\u003eEntering Royal Waterway Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" class=\"glightbox-link\" aria-label=\"Unlock Royal Waterway Bench In Hollow Knight Keeb\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" type=\"video/mp4\"\u003eUnlock Royal Waterway Bench In Hollow Knight Keeb\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"todays-script\"\u003etodays script \u003ca href=\"#todays-script\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMade a little script to grab these\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efeeds\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etoday\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;image\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;![\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e](\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;image\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;[\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e](\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Knife Sharpener\n\nToday, some great work on the knife sharpener re-design.  I've been using the\nsame one since I first got my ender 3 3d printer, and have wanted to make some\nchanges ever since.\n\n![Helmet Hidden In Design](https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png)\n\u003e Wyatt sat with me through the design, I probably would not have gone this deep without him, he thought the helmet look was hilarious\n\n![Knife Sharpener Double Hinge First Try](https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4)\n\u003e Notice one of the biggest problems with this one here is how much is slides around\n\n![Knife Sharpener Double Hinge Wing Nut](https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png)\n\u003e This wing nut really set it apart\n\n## Hollow Knight\n\nProgress on the Hollow Knight Keeb Run.  SILKSONG in 2 WEEKS!!\n\n![Getting The Lumafly Lantern In My Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4)\n![Unlocking Royal Waterways In Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4)\n![Entering Royal Waterway Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4)\n![Unlock Royal Waterway Bench In Hollow Knight Keeb](https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4)\n\n## todays script\n\nMade a little script to grab these\n\n``` python\nfor post in m.feeds.today.posts:\n    if post.get('image', None):\n        print(f'![{post[\"title\"]}]({post[\"image\"]})')\n    else:\n        print(f'[{post[\"title\"]}]({post[\"url\"]})')\n```\n",
      "summary": "Today, some great work on the knife sharpener re-design. I've been using the same one since I first got my ender 3 3d printer, and have wanted to make some...",
      "date_published": "2025-08-23T19:27:05Z",
      "date_modified": "2025-08-23T19:27:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/knife-sharpener-double-hinge-wing-nut/",
      "url": "https://waylonwalker.com/shots/knife-sharpener-double-hinge-wing-nut/",
      "title": "Knife Sharpener Double Hinge Wing Nut",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png\" class=\"glightbox-link\" aria-label=\"knife sharpener double hinge wing nut\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png\" alt=\"knife sharpener double hinge wing nut\"/ data-glightbox=\"description: knife sharpener double hinge wing nut\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA 3 lobed wing nut perfectly hiding the m4 cap screw underneath of it, flooded in uv resin.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![knife sharpener double hinge wing nut](https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png)\n\n\u003e A 3 lobed wing nut perfectly hiding the m4 cap screw underneath of it, flooded in uv resin.\n",
      "summary": "A 3 lobed wing nut perfectly hiding the m4 cap screw underneath of it, flooded in uv resin.",
      "image": "https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png",
      "date_published": "2025-08-23T19:23:55Z",
      "date_modified": "2025-08-23T19:23:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "knife",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/knife-sharpener-double-hinge-first-try/",
      "url": "https://waylonwalker.com/shots/knife-sharpener-double-hinge-first-try/",
      "title": "Knife Sharpener Double Hinge First Try",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" class=\"glightbox-link\" aria-label=\"knife sharpener double hinge first try\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.wayl.one/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.wayl.one/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" type=\"video/mp4\"\u003eknife sharpener double hinge first try\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTesting out the double hinge knife sharpener holder for the first time.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![knife sharpener double hinge first try](https://dropper.wayl.one/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4)\n\n\u003e Testing out the double hinge knife sharpener holder for the first time.\n",
      "summary": "Testing out the double hinge knife sharpener holder for the first time.",
      "image": "https://dropper.wayl.one/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4",
      "date_published": "2025-08-23T19:21:49Z",
      "date_modified": "2025-08-23T19:21:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "knife",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/knife-sharpenter-double-hinge-mid-print/",
      "url": "https://waylonwalker.com/shots/knife-sharpenter-double-hinge-mid-print/",
      "title": "Knife Sharpenter Double Hinge Mid Print",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ed5c4cae-8608-4b11-aa03-866bf550bc25.png\" class=\"glightbox-link\" aria-label=\"knife sharpenter double hinge mid print\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ed5c4cae-8608-4b11-aa03-866bf550bc25.png\" alt=\"knife sharpenter double hinge mid print\"/ data-glightbox=\"description: knife sharpenter double hinge mid print\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA bambu A1 printer printing my double hinge mid print under a uv light\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![knife sharpenter double hinge mid print](https://dropper.waylonwalker.com/api/file/ed5c4cae-8608-4b11-aa03-866bf550bc25.png)\n\n\u003e A bambu A1 printer printing my double hinge mid print under a uv light\n",
      "summary": "A bambu A1 printer printing my double hinge mid print under a uv light",
      "image": "https://dropper.waylonwalker.com/api/file/ed5c4cae-8608-4b11-aa03-866bf550bc25.png",
      "date_published": "2025-08-23T18:44:28Z",
      "date_modified": "2025-08-23T18:44:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "knife",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/kings-station-in-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/kings-station-in-hollow-knight-keeb-run/",
      "title": "Kings Station In Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4\" class=\"glightbox-link\" aria-label=\"Kings Station in Hollow Knight Keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4\" type=\"video/mp4\"\u003eKings Station in Hollow Knight Keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eUnlocking Kings station in my hollow knight keyboard only run\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Kings Station in Hollow Knight Keeb run](https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4)\n\n\u003e Unlocking Kings station in my hollow knight keyboard only run\n",
      "summary": "Unlocking Kings station in my hollow knight keyboard only run",
      "image": "https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4",
      "date_published": "2025-08-23T11:01:07Z",
      "date_modified": "2025-08-23T11:01:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/defeating-the-dung-defender-in-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/defeating-the-dung-defender-in-hollow-knight-keeb-run/",
      "title": "Defeating The Dung Defender In Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4\" class=\"glightbox-link\" aria-label=\"Defeating the Dung Defender in hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4\" type=\"video/mp4\"\u003eDefeating the Dung Defender in hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThe final blow to the Dung Defender as he admits defeat and allows the little knight to access the valve in the royal waterways.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Defeating the Dung Defender in hollow knight keeb run](https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4)\n\n\u003e The final blow to the Dung Defender as he admits defeat and allows the little knight to access the valve in the royal waterways.\n",
      "summary": "The final blow to the Dung Defender as he admits defeat and allows the little knight to access the valve in the royal waterways.",
      "image": "https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4",
      "date_published": "2025-08-23T11:00:03Z",
      "date_modified": "2025-08-23T11:00:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/unlock-royal-waterway-bench-in-hollow-knight-keeb/",
      "url": "https://waylonwalker.com/shots/unlock-royal-waterway-bench-in-hollow-knight-keeb/",
      "title": "Unlock Royal Waterway Bench In Hollow Knight Keeb",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" class=\"glightbox-link\" aria-label=\"unlock royal waterway bench in hollow knight keeb\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" type=\"video/mp4\"\u003eunlock royal waterway bench in hollow knight keeb\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eUsing desolate dive to unlock the Royal Waterway bench in my Hollow Knight keeb only run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![unlock royal waterway bench in hollow knight keeb](https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4)\n\n\u003e Using desolate dive to unlock the Royal Waterway bench in my Hollow Knight keeb only run.\n",
      "summary": "Using desolate dive to unlock the Royal Waterway bench in my Hollow Knight keeb only run.",
      "image": "https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4",
      "date_published": "2025-08-23T09:48:08Z",
      "date_modified": "2025-08-23T09:48:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/entering-royal-waterway-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/entering-royal-waterway-hollow-knight-keeb-run/",
      "title": "Entering Royal Waterway Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" class=\"glightbox-link\" aria-label=\"entering royal waterway hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" type=\"video/mp4\"\u003eentering royal waterway hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eEntering the royal waterway during my hollow knight keeb only run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![entering royal waterway hollow knight keeb run](https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4)\n\n\u003e Entering the royal waterway during my hollow knight keeb only run.\n",
      "summary": "Entering the royal waterway during my hollow knight keeb only run.",
      "image": "https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4",
      "date_published": "2025-08-23T09:46:21Z",
      "date_modified": "2025-08-23T09:46:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/unlocking-royal-waterways-in-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/unlocking-royal-waterways-in-hollow-knight-keeb-run/",
      "title": "Unlocking Royal Waterways In Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" class=\"glightbox-link\" aria-label=\"unlocking royal waterways in hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" type=\"video/mp4\"\u003eunlocking royal waterways in hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eUsing the simple key to unlock the Royal Waterway in Hollow Knight during my keeb only run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![unlocking royal waterways in hollow knight keeb run](https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4)\n\n\u003e Using the simple key to unlock the Royal Waterway in Hollow Knight during my keeb only run.\n",
      "summary": "Using the simple key to unlock the Royal Waterway in Hollow Knight during my keeb only run.",
      "image": "https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4",
      "date_published": "2025-08-23T09:45:20Z",
      "date_modified": "2025-08-23T09:45:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/getting-the-lumafly-lantern-in-my-hollow-knight-keeb-run/",
      "url": "https://waylonwalker.com/shots/getting-the-lumafly-lantern-in-my-hollow-knight-keeb-run/",
      "title": "Getting The Lumafly Lantern In My Hollow Knight Keeb Run",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" class=\"glightbox-link\" aria-label=\"getting the lumafly lantern in my hollow knight keeb run\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" type=\"video/mp4\"\u003egetting the lumafly lantern in my hollow knight keeb run\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003ePurchasing the Lumafly Lanten from Sly’s shop in Dirtmouth during my Hollow Knight keeb only run.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![getting the lumafly lantern in my hollow knight keeb run](https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4)\n\n\u003e Purchasing the Lumafly Lanten from Sly's shop in Dirtmouth during my Hollow Knight keeb only run.\n",
      "summary": "Purchasing the Lumafly Lanten from Sly's shop in Dirtmouth during my Hollow Knight keeb only run.",
      "image": "https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4",
      "date_published": "2025-08-23T09:43:36Z",
      "date_modified": "2025-08-23T09:43:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/helmet-hidden-in-design/",
      "url": "https://waylonwalker.com/shots/helmet-hidden-in-design/",
      "title": "Helmet Hidden In Design",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png\" class=\"glightbox-link\" aria-label=\"helmet hidden in design\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png\" alt=\"helmet hidden in design\"/ data-glightbox=\"description: helmet hidden in design\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA CAD design for a movable hinge that turned out looking like a space helmet.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![helmet hidden in design](https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png)\n\n\u003e A CAD design for a movable hinge that turned out looking like a space helmet.\n",
      "summary": "A CAD design for a movable hinge that turned out looking like a space helmet.",
      "image": "https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png",
      "date_published": "2025-08-23T09:26:38Z",
      "date_modified": "2025-08-23T09:26:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d",
        "design",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/bash-timestamp/",
      "url": "https://waylonwalker.com/bash-timestamp/",
      "title": "bash timestamp",
      "content_html": "\u003cp\u003eToday I needed to make a backup of some config.  I wanted to add a timestamp so\nthat I knew when the backup was made.  This would make unique backups easy, and\nI could tell when they were made.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp configfile configfile.backup.\u003cspan class=\"k\"\u003e$(\u003c/span\u003edate %s\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eIf you want to decrypt the timestamp into something more human readable.  You\ncan list backup files, strip out the timestamp, and then convert it to a human\nreadable date.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/bin/ls \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep backup \u003cspan class=\"p\"\u003e|\u003c/span\u003e sed \u003cspan class=\"s1\"\u003e\u0026#39;s/configfile.backup.//\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e xargs -I \u003cspan class=\"o\"\u003e{}\u003c/span\u003e date -d @\u003cspan class=\"o\"\u003e{}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eor just throw it to the date command by hand.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edate -d @1755895402\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I needed to make a backup of some config.  I wanted to add a timestamp so\nthat I knew when the backup was made.  This would make unique backups easy, and\nI could tell when they were made.\n\n``` bash\ncp configfile configfile.backup.$(date %s)\n```\n\nIf you want to decrypt the timestamp into something more human readable.  You\ncan list backup files, strip out the timestamp, and then convert it to a human\nreadable date.\n\n``` bash\n/bin/ls | grep backup | sed 's/configfile.backup.//' | xargs -I {} date -d @{}\n```\n\nor just throw it to the date command by hand.\n\n``` bash\ndate -d @1755895402\n```\n\n",
      "summary": "Today I needed to make a backup of some config. I wanted to add a timestamp so that I knew when the backup was made. This would make unique backups easy, and...",
      "date_published": "2025-08-22T15:35:36Z",
      "date_modified": "2025-08-22T15:35:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-21-notes/",
      "url": "https://waylonwalker.com/2025-08-21-notes/",
      "title": "2025-08-21 Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIs ai in 2025 like a Roomba vacuum?  The ads make it look fantastic but after some time it becomes worthless and needs constant monitoring.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi\" 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\"\u003ehttps://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFor some reason the first one has kinda stuck with me.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYou think youre thinking, but you’re mostly remembering. Your thoughts are just loops your nervous system finds familiar, your not making decisions, your repeating emotional echos.  Unless you interrupt the loop your future is your past in disguise.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF\n\nIs ai in 2025 like a Roomba vacuum?  The ads make it look fantastic but after some time it becomes worthless and needs constant monitoring.\n\nhttps://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi\n\nFor some reason the first one has kinda stuck with me.  \n\n\u003e You think youre thinking, but you're mostly remembering. Your thoughts are just loops your nervous system finds familiar, your not making decisions, your repeating emotional echos.  Unless you interrupt the loop your future is your past in disguise.\n\n",
      "summary": "https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF",
      "date_published": "2025-08-21T07:43:49Z",
      "date_modified": "2025-08-21T07:43:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-807/",
      "url": "https://waylonwalker.com/thought-807/",
      "title": "💭 Search Needs a Human Solution: A Manifesto",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simplecto.com/search-needs-a-human-solution-a-manifesto/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://simplecto.com/content/images/2024/11/1732113326995.png\" alt=\"Search Needs a Human Solution: A Manifesto — When was the last time you felt genuine discovery on the internet?\n\u0026lt;p\u0026gt;Not algorithmic recommendations. Not SEO-optimized listicles.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;I mean real, surprising, meaningful discovery.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;Search is broken but not in the way tech companies think.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;We don\u0026#39;t need better algorithms or bigger indexes.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;We don\u0026#39;t need more compute or scale.\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Search Needs a Human Solution: A Manifesto — When was the last time you felt genuine discovery on the internet?\n\u0026lt;p\u0026gt;Not algorithmic recommendations. Not SEO-optimized listicles.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;I mean real, surprising, meaningful discovery.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;Search is broken but not in the way tech companies think.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;We don\u0026#39;t need better algorithms or bigger indexes.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;We don\u0026#39;t need more compute or scale.\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eSearch Needs a Human Solution: A Manifesto\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eWhen was the last time you felt genuine discovery on the internet?\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eNot algorithmic recommendations. Not SEO-optimized listicles.\u003c/p\u003e\n\u003cp\u003eI mean real, surprising, meaningful discovery.\u003c/p\u003e\n\u003cp\u003eSearch is brok…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eCandid and colorful thoughts on enterprise readiness · simplecto.com\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eThe hype bro influencer culture is over, we are fucking burnt the fuck out.  I’m done scrolling through \u003ca href=\"/ai-slop/\" class=\"glossary-term\" title=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\"\u003eai slop\u003c/a\u003e on social media, I like in a few times a week with hopes to see some friends at the top of my feed and jump out.  The Doom and Gloom of politics, everyone has a side that will bring glory and the other side will start an apocalypse did me in, ai generated bs is just driving those platforms further into the ground, I’m tired and done.\u003c/p\u003e\n\u003cp\u003eI’m starting to lean into RSS, I hope for projects like \u003ca href=\"https://simplecto.com/author/sam/\"\u003eSam\u003c/a\u003e mentions here make this more possible for the average person.  I hope that real people make awesomelists like he mentions.  I hope that the internet becomes more human again.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simplecto.com/search-needs-a-human-solution-a-manifesto/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://simplecto.com/content/images/2024/11/1732113326995.png\" alt=\"Search Needs a Human Solution: A Manifesto — When was the last time you felt genuine discovery on the internet?\n\nNot algorithmic recommendations. Not SEO-optimized listicles.\n\n\n\nI mean real, surprising, meaningful discovery.\n\n\n\nSearch is broken but not in the way tech companies think.\n\nWe don\u0026#39;t need better algorithms or bigger indexes.\n\nWe don\u0026#39;t need more compute or scale.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSearch Needs a Human Solution: A Manifesto\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWhen was the last time you felt genuine discovery on the internet?\n\nNot algorithmic recommendations. Not SEO-optimized listicles.\n\n\n\nI mean real, surprising, meaningful discovery.\n\n\n\nSearch is brok...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eCandid and colorful thoughts on enterprise readiness \u0026middot; simplecto.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe hype bro influencer culture is over, we are fucking burnt the fuck out.  I'm done scrolling through ai slop on social media, I like in a few times a week with hopes to see some friends at the top of my feed and jump out.  The Doom and Gloom of politics, everyone has a side that will bring glory and the other side will start an apocalypse did me in, ai generated bs is just driving those platforms further into the ground, I'm tired and done.\n\nI'm starting to lean into RSS, I hope for projects like [Sam](https://simplecto.com/author/sam/) mentions here make this more possible for the average person.  I hope that real people make awesomelists like he mentions.  I hope that the internet becomes more human again.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simplecto.com/search-needs-a-human-solution-a-manifesto/",
      "date_published": "2025-08-21T01:23:08Z",
      "date_modified": "2025-08-21T01:23:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-806/",
      "url": "https://waylonwalker.com/thought-806/",
      "title": "💭 You Should Be Hiring Mullets. (write that down)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simplecto.com/you-should-be-hiring-mullets-write-that-down/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://simplecto.com/content/images/2024/11/hire-a-mullet.png\" alt=\"You Should Be Hiring Mullets. (write that down) — Not because it\u0026#39;s cool (it is), but because it\u0026#39;s what your company actually needs right now.\n\u0026lt;p\u0026gt;\u0026#34;Business in the front, party in the back\u0026#34; isn\u0026#39;t just some throwback style. It\u0026#39;s the whole point.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;In our corporate, don\u0026#39;t-let-HR-see-this reality, it means you\u0026#39;re getting a 360° person. Someone who exists in both\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: You Should Be Hiring Mullets. (write that down) — Not because it\u0026#39;s cool (it is), but because it\u0026#39;s what your company actually needs right now.\n\u0026lt;p\u0026gt;\u0026#34;Business in the front, party in the back\u0026#34; isn\u0026#39;t just some throwback style. It\u0026#39;s the whole point.\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;In our corporate, don\u0026#39;t-let-HR-see-this reality, it means you\u0026#39;re getting a 360° person. Someone who exists in both\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eYou Should Be Hiring Mullets. (write that down)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eNot because it\u0026#39;s cool (it is), but because it\u0026#39;s what your company actually needs right now.\u003cp\u003e\u003c/p\u003e\n\u003cp\u003e\u0026#34;Business in the front, party in the back\u0026#34; isn\u0026#39;t just some throwback style. It\u0026#39;s the whole point.\u003c/p\u003e\n\u003cp\u003eIn ou…\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eCandid and colorful thoughts on enterprise readiness · simplecto.com\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eWe need more mullets (as sam describes them).  Not so serious, but serious when it counts.  Ready to back you up, get some shit shipped, roll up their sleeves and do the work, stand up in front of people and pitch ideas.  We have too many hustle bros pitching shit they cant do, ai doomers who have been here 10 minutes think they can replace everything they don’t understand with a word calculator, framework Andys afraid to ship till its \u003ca href=\"/perfect/\" class=\"wikilink\" data-title=\"perfect\" data-description=\"Perfect is a made up word that humans use to describe something that is above average, or works really well for them. The idea of perfection is fleeting, as...\" data-date=\"2025-06-26\" data-preview=\"Perfect is a made up word that humans use to describe something that is above average, or works really well for them. The idea of perfection is fleeting, as...\"\u003eperfect\u003c/a\u003e.  Grow a Mullet.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simplecto.com/you-should-be-hiring-mullets-write-that-down/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://simplecto.com/content/images/2024/11/hire-a-mullet.png\" alt=\"You Should Be Hiring Mullets. (write that down) — Not because it\u0026#39;s cool (it is), but because it\u0026#39;s what your company actually needs right now.\n\n\u0026#34;Business in the front, party in the back\u0026#34; isn\u0026#39;t just some throwback style. It\u0026#39;s the whole point.\n\nIn our corporate, don\u0026#39;t-let-HR-see-this reality, it means you\u0026#39;re getting a 360° person. Someone who exists in both\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYou Should Be Hiring Mullets. (write that down)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNot because it\u0026#39;s cool (it is), but because it\u0026#39;s what your company actually needs right now.\n\n\u0026#34;Business in the front, party in the back\u0026#34; isn\u0026#39;t just some throwback style. It\u0026#39;s the whole point.\n\nIn ou...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eCandid and colorful thoughts on enterprise readiness \u0026middot; simplecto.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWe need more mullets (as sam describes them).  Not so serious, but serious when it counts.  Ready to back you up, get some shit shipped, roll up their sleeves and do the work, stand up in front of people and pitch ideas.  We have too many hustle bros pitching shit they cant do, ai doomers who have been here 10 minutes think they can replace everything they don't understand with a word calculator, framework Andys afraid to ship till its \u003ca href=\"/perfect/\" class=\"wikilink\" data-title=\"perfect\" data-description=\"Perfect is a made up word that humans use to describe something that is above average, or works really well for them. The idea of perfection is fleeting, as...\" data-date=\"2025-06-26\"\u003eperfect\u003c/a\u003e.  Grow a Mullet.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simplecto.com/you-should-be-hiring-mullets-write-that-down/",
      "date_published": "2025-08-21T01:14:21Z",
      "date_modified": "2025-08-21T01:14:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-805/",
      "url": "https://waylonwalker.com/thought-805/",
      "title": "💭 OverType - The Markdown Editor That's a Textarea",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://overtype.dev/?utm_source=waylonwalker.com\" class=\"glightbox-link\" aria-label=\"https://overtype.dev/?utm_source=waylonwalker.com\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://overtype.dev/?utm_source=waylonwalker.com\" alt=\"https://overtype.dev/?utm_source=waylonwalker.com\"/ data-glightbox=\"description: https://overtype.dev/?utm_source=waylonwalker.com\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe most under hyped, under engineered text editor overtype.  Going to be popping this into some places like \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e, and maybe more, looks small and easy to use.  Gives just a bit of nice features over a text editor.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://overtype.dev/?utm_source=waylonwalker.com](/static/https://overtype.dev/?utm_source=waylonwalker.com)\n\nThe most under hyped, under engineered text editor overtype.  Going to be popping this into some places like \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e, and maybe more, looks small and easy to use.  Gives just a bit of nice features over a text editor.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://overtype.dev/?utm_source=waylonwalker.com",
      "date_published": "2025-08-21T00:50:01Z",
      "date_modified": "2025-08-21T00:50:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/panphora-overtype/",
      "url": "https://waylonwalker.com/panphora-overtype/",
      "title": "⭐ panphora overtype",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/panphora/overtype\" 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\"\u003eovertype\u003c/a\u003e by \u003ca href=\"https://github.com/panphora\" 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\"\u003epanphora\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe markdown editor that’s just a textarea \u003ca href=\"https://overtype.dev\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/overtype.dev.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/overtype.dev.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://overtype.dev\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nThe work on [overtype](https://github.com/panphora/overtype) by [panphora](https://github.com/panphora).\n\nThe markdown editor that's just a textarea https://overtype.dev\n",
      "summary": "The work on overtype by panphora.",
      "date_published": "2025-08-21T00:47:17Z",
      "date_modified": "2025-08-21T00:47:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-802/",
      "url": "https://waylonwalker.com/thought-802/",
      "title": "💭 The Internet is Dying: AI, Bots, and The End of Human Content ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"J5ZmLvy_Jfg\" title=\"The Internet is Dying: AI, Bots, and The End of Human Content\" playlabel=\"Play: The Internet is Dying: AI, Bots, and The End of Human Content\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn this VAnessa is hitting my feed with hard topics, I’m not sure whether to subscribe or to block.  These top websites only feel worse every day, when I post on twitter and I get 4 likes by accounts that were created 5 minutes ago with racy profile pics it feels obvious.  I wonder how larger accounts deal with it.  Now that llms have made making these bots mimic humans easy It really makes you want out.  I’ve really become a curmudgeon and leaning on rss over the past year, I dont like it, but idk what to do.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"J5ZmLvy_Jfg\" title=\"The Internet is Dying: AI, Bots, and The End of Human Content\" playlabel=\"Play: The Internet is Dying: AI, Bots, and The End of Human Content\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDamn this VAnessa is hitting my feed with hard topics, I'm not sure whether to subscribe or to block.  These top websites only feel worse every day, when I post on twitter and I get 4 likes by accounts that were created 5 minutes ago with racy profile pics it feels obvious.  I wonder how larger accounts deal with it.  Now that llms have made making these bots mimic humans easy It really makes you want out.  I've really become a curmudgeon and leaning on rss over the past year, I dont like it, but idk what to do.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=J5ZmLvy_Jfg\u0026t=182s",
      "date_published": "2025-08-18T13:04:56Z",
      "date_modified": "2025-08-18T13:04:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-801/",
      "url": "https://waylonwalker.com/thought-801/",
      "title": "💭 The Real Reason Your Power Bill Doubled (It's Not Inflation) -...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"hJ2tqs_vksc\" title=\"The Real Reason Your Power Bill Doubled (It\u0026#39;s Not Inflation)\" playlabel=\"Play: The Real Reason Your Power Bill Doubled (It\u0026#39;s Not Inflation)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a crazy theory I did not realize was out there, but damn power just keeps costing more and more.  She does not mention it here, but there are many sources of power for the grid that cost vastly different amounts to produce, generally “clean energy” solutions are harder and more expensive to bring online and don’t just turn on and off at the flick of a switch.  Anyways, how are the power companies divying this power out to users, do some get preferred rates or supply?  My rates just went up for the summer period “temporarily”.  Our infrastructure is aging hard to upgrade and needs something done to it.  Who’s really going to pay for it, these AI companies are throwing big numbers but do they have any real money?  Do they have any real revenue after building out massive data centers filling them with the most expensive hardware?  These guys are burning cash like crazy.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"hJ2tqs_vksc\" title=\"The Real Reason Your Power Bill Doubled (It\u0026#39;s Not Inflation)\" playlabel=\"Play: The Real Reason Your Power Bill Doubled (It\u0026#39;s Not Inflation)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is a crazy theory I did not realize was out there, but damn power just keeps costing more and more.  She does not mention it here, but there are many sources of power for the grid that cost vastly different amounts to produce, generally \"clean energy\" solutions are harder and more expensive to bring online and don't just turn on and off at the flick of a switch.  Anyways, how are the power companies divying this power out to users, do some get preferred rates or supply?  My rates just went up for the summer period \"temporarily\".  Our infrastructure is aging hard to upgrade and needs something done to it.  Who's really going to pay for it, these AI companies are throwing big numbers but do they have any real money?  Do they have any real revenue after building out massive data centers filling them with the most expensive hardware?  These guys are burning cash like crazy.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=hJ2tqs_vksc\u0026t=25s",
      "date_published": "2025-08-18T13:01:04Z",
      "date_modified": "2025-08-18T13:01:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-800/",
      "url": "https://waylonwalker.com/thought-800/",
      "title": "💭 Digitized Signatures",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://signature.cnrad.dev/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/signature.cnrad.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/signature.cnrad.dev.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDigitized Signatures\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esignature.cnrad.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eseriously cool dumb app that no one asked for but is really creative and unique.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c87fdbe3-26f2-4f14-b4fb-7dc9b231e999.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-17T15-46-27-287Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c87fdbe3-26f2-4f14-b4fb-7dc9b231e999.png\" alt=\"screenshot-2025-08-17T15-46-27-287Z.png\"/ data-glightbox=\"description: screenshot-2025-08-17T15-46-27-287Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://signature.cnrad.dev/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDigitized Signatures\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esignature.cnrad.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nseriously cool dumb app that no one asked for but is really creative and unique.\n\n![screenshot-2025-08-17T15-46-27-287Z.png](https://dropper.waylonwalker.com/api/file/c87fdbe3-26f2-4f14-b4fb-7dc9b231e999.png)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://signature.cnrad.dev/",
      "date_published": "2025-08-17T15:47:05Z",
      "date_modified": "2025-08-17T15:47:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-799/",
      "url": "https://waylonwalker.com/thought-799/",
      "title": "💭 DHH on X: \"Rewiring your muscle memory for copy/paste when you...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1956645753255805151\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eToday I learned that its spelled “Rite of Passage”, and is short for ritual.  Mac has so many of these things that are just different, but do not let you reconfigure them and you are stuck with it.  copy / paste I don’t get, the 3 times I’ve touched a mac since I was a kid its frustrated me.  Is it lock in? or is it them actually thinking this is the right way and you all shall do as we say.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1956645753255805151\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nToday I learned that its spelled \"Rite of Passage\", and is short for ritual.  Mac has so many of these things that are just different, but do not let you reconfigure them and you are stuck with it.  copy / paste I don't get, the 3 times I've touched a mac since I was a kid its frustrated me.  Is it lock in? or is it them actually thinking this is the right way and you all shall do as we say.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/dhh/status/1956645753255805151",
      "date_published": "2025-08-17T15:39:42Z",
      "date_modified": "2025-08-17T15:39:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-17-notes/",
      "url": "https://waylonwalker.com/2025-08-17-notes/",
      "title": "2025-08-17 Notes",
      "content_html": "\u003cp\u003eAfter a long time I begrudgingly setup window rules for hyprland.  What I\nwanted was the ability to log out and jump back into work with a freshened work\nspace.  Right now I’m running on low ram and disk on hyprland and sometimes I\nneed to just quit everything and get back to work quick.  So I setup exec-once\nto start my terminal, browser, and chat.  These are my main applications that\nrun on my power fingers 456 (which are on a layer that present under jkl).  I\nuse them every time I log in and will need them no matter what I do.  When I\nexec once them, they just dump onto one workspace, you can pick it but no\nmatter the timing, you end up with race conditions that end up with you on\ndifferent workspaces.\u003c/p\u003e\n\u003cp\u003eSo I setup window rules.  I avoided this for a long time, because of my\nworkflow on awesomewm, I thought this manual workspace selection was superior.\nWhat I really think happened was that awesomewm was a little trickier for me to\nfigure out what things were named and to actually get the rules setup\ncorrectly.\u003c/p\u003e\n\u003cp\u003ehyprland makes this pretty simple with its great cli.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep class\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow that I can see attributes of these windows as I open them I can set up\nrules for them to go onto the correct workspace, or to float them.  I have a\ncouple of things like a file picker coming from a browser showing up in the\ntiled layout, when a file picker like this shows up, just cover everything up\nits temporary, no need to squeeze it into the tiled layout.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ethe file picker float also fixed an issue I had where they would not show up,\nand lock up brave when its in full screen mode and I don’t realize it.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre\u003e\u003ccode class=\"language-conf\"\u003ewindowrulev2 = workspace 1, class:^(steam)$\nwindowrulev2 = workspace 4, class:^(kitty)$\nwindowrulev2 = workspace 5, class:^(firefox)$\nwindowrulev2 = workspace 5, class:^(brave-browser)$\nwindowrulev2 = workspace 5, class:^(google-chrome)$\nwindowrulev2 = workspace 6, class:^(Signal)$\nwindowrulev2 = workspace 2, class:^(krita)$\nwindowrulev2 = workspace 8, class:^(brave-chat.openai.com__-Default)$\nwindowrulev2 = workspace 8, class:^(brave-youtube.com__-Default)$\nwindowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$\nwindowrulev2 = workspace 9, class:^(org.prismlauncher.PrismLauncher)$\nwindowrulev2 = float, class:^(org.prismlauncher.PrismLauncher)$, title:^(Console window.*)\nwindowrulev2 = float, class:^(xdg-desktop-portal-gtk)$\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nAfter a long time I begrudgingly setup window rules for hyprland.  What I\nwanted was the ability to log out and jump back into work with a freshened work\nspace.  Right now I'm running on low ram and disk on hyprland and sometimes I\nneed to just quit everything and get back to work quick.  So I setup exec-once\nto start my terminal, browser, and chat.  These are my main applications that\nrun on my power fingers 456 (which are on a layer that present under jkl).  I\nuse them every time I log in and will need them no matter what I do.  When I\nexec once them, they just dump onto one workspace, you can pick it but no\nmatter the timing, you end up with race conditions that end up with you on\ndifferent workspaces.\n\nSo I setup window rules.  I avoided this for a long time, because of my\nworkflow on awesomewm, I thought this manual workspace selection was superior.\nWhat I really think happened was that awesomewm was a little trickier for me to\nfigure out what things were named and to actually get the rules setup\ncorrectly.\n\nhyprland makes this pretty simple with its great cli.\n\n``` bash\nhyprctl clients -j | jq | grep class\n```\n\nNow that I can see attributes of these windows as I open them I can set up\nrules for them to go onto the correct workspace, or to float them.  I have a\ncouple of things like a file picker coming from a browser showing up in the\ntiled layout, when a file picker like this shows up, just cover everything up\nits temporary, no need to squeeze it into the tiled layout.\n\n\u003e the file picker float also fixed an issue I had where they would not show up,\n\u003e and lock up brave when its in full screen mode and I don't realize it.\n\n``` conf\nwindowrulev2 = workspace 1, class:^(steam)$\nwindowrulev2 = workspace 4, class:^(kitty)$\nwindowrulev2 = workspace 5, class:^(firefox)$\nwindowrulev2 = workspace 5, class:^(brave-browser)$\nwindowrulev2 = workspace 5, class:^(google-chrome)$\nwindowrulev2 = workspace 6, class:^(Signal)$\nwindowrulev2 = workspace 2, class:^(krita)$\nwindowrulev2 = workspace 8, class:^(brave-chat.openai.com__-Default)$\nwindowrulev2 = workspace 8, class:^(brave-youtube.com__-Default)$\nwindowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$\nwindowrulev2 = workspace 9, class:^(org.prismlauncher.PrismLauncher)$\nwindowrulev2 = float, class:^(org.prismlauncher.PrismLauncher)$, title:^(Console window.*)\nwindowrulev2 = float, class:^(xdg-desktop-portal-gtk)$\n```\n",
      "summary": "After a long time I begrudgingly setup window rules for hyprland. What I wanted was the ability to log out and jump back into work with a freshened work...",
      "date_published": "2025-08-17T12:21:47Z",
      "date_modified": "2025-08-17T12:21:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/wyatt-drew-a-watertower-in-aesprite/",
      "url": "https://waylonwalker.com/shots/wyatt-drew-a-watertower-in-aesprite/",
      "title": "Wyatt Drew A Watertower In Aesprite",
      "content_html": "\u003cp\u003eLittle dude has some talent.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/029b271a-a1dd-4951-a7ba-7124ddb00965.png\" class=\"glightbox-link\" aria-label=\"Wyatt drew a water tower in aesprite\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/029b271a-a1dd-4951-a7ba-7124ddb00965.png\" alt=\"Wyatt drew a water tower in aesprite\"/ data-glightbox=\"description: Wyatt drew a water tower in aesprite\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA post apocalyptic water tower sitting on a rock drawn in blues and greens with moss hanging from it, including a rusty red top and legs.  Drew by Wyatt.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nLittle dude has some talent.\n\n![Wyatt drew a water tower in aesprite](https://dropper.waylonwalker.com/api/file/029b271a-a1dd-4951-a7ba-7124ddb00965.png)\n\n\u003e A post apocalyptic water tower sitting on a rock drawn in blues and greens with moss hanging from it, including a rusty red top and legs.  Drew by Wyatt.\n",
      "summary": "A post apocolptic water tower sitting on a rock drawn in blues and greens with moss hanging from it, including a rusty red top and legs. Drew by Wyatt.",
      "image": "https://dropper.waylonwalker.com/api/file/029b271a-a1dd-4951-a7ba-7124ddb00965.png",
      "date_published": "2025-08-17T10:21:08Z",
      "date_modified": "2025-08-17T10:21:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-16-notes/",
      "url": "https://waylonwalker.com/2025-08-16-notes/",
      "title": "2025-08-16 Notes",
      "content_html": "\u003ch2 id=\"\u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e-cleanup-day\"\u003eHomeLab cleanup day \u003ca href=\"#homelab-cleanup-day\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e remove nextcloud\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e pause photoprism\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e pause syncthing\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e move data to walkershare\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e filepermissions 1000:1000 all of it\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e organize how I want\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e resume photoprism\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e resume syncthing - update share locations\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e expose to mac over smb\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e ensure mac can write over smb\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e expose to archlinux oversmb\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e ensure archlinux can write over smb\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e expose to syncthing over pvc\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e expose to my terminal over pvc\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ewishlist\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Forgejo repos\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Forgejo runners\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e explore moving from docker repository to repoflow\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n## HomeLab cleanup day\n\n- [x] remove nextcloud\n- [x] pause photoprism\n- [x] pause syncthing\n- [x] move data to walkershare\n- [x] filepermissions 1000:1000 all of it\n- [x] organize how I want\n- [ ] resume photoprism\n- [ ] resume syncthing - update share locations\n- [x] expose to mac over smb\n- [x] ensure mac can write over smb\n- [x] expose to archlinux oversmb\n- [x] ensure archlinux can write over smb\n- [ ] expose to syncthing over pvc\n- [ ] expose to my terminal over pvc\n\n**wishlist**\n\n- [ ] Forgejo repos\n- [ ] Forgejo runners\n- [ ] explore moving from docker repository to repoflow\n",
      "summary": "[x] remove nextcloud - [x] pause photoprism - [x] pause syncthing - [x] move data to walkershare - [x] filepermissions 1000:1000 all of it - [x] organize how...",
      "date_published": "2025-08-16T10:07:21Z",
      "date_modified": "2025-08-16T10:07:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-798/",
      "url": "https://waylonwalker.com/thought-798/",
      "title": "💭 Performance Difference between RWX and RWO volumes · longhorn/...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/longhorn/longhorn/discussions/6964\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/3ef5e06da915e8435ecd50368f3eeb8e8f0e4ab29fb9f9a8617cf4465c9496bc/longhorn/longhorn/discussions/6964\" alt=\"Performance Difference between RWX and RWO volumes · longhorn longhorn · Discussion #6964 — Hey all, because of some internal testing I made a couple of experiments on our Cluster related to performance of RWX and RWO volumes. Because this might be of interest to some people I thought I s...\" loading=\"lazy\"/ data-glightbox=\"description: Performance Difference between RWX and RWO volumes · longhorn longhorn · Discussion #6964 — Hey all, because of some internal testing I made a couple of experiments on our Cluster related to performance of RWX and RWO volumes. Because this might be of interest to some people I thought I s...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePerformance Difference between RWX and RWO volumes · longhorn longhorn · Discussion #6964\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHey all, because of some internal testing I made a couple of experiments on our Cluster related to performance of RWX and RWO volumes. Because this might be of interest to some people I thought I s...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting longhorn storage performance test, author does highlight right away that this is a simulation and not a REAL test.  I did not fully understand the storage semantics before reading through this.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eRWO\u003c/strong\u003e -  Always presents a filesystem \u003ccode\u003eext4\u003c/code\u003e or \u003ccode\u003exfs\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRWX\u003c/strong\u003e/\u003cstrong\u003eROX\u003c/strong\u003e - Always presents a network share \u003ccode\u003enfs\u003c/code\u003e to the pod.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis is an important distinction for applications that use sqlite or a tool on top of sqlite such as diskcache.  With sqlite it is not recomended to run over nfs due to missing required file locking mechanisms.\u003c/p\u003e\n\u003cp\u003eLonghorn storage still provides a lot of benefits to these applications as the storage is automatically replicated, if the node that your application is running on goes offline a new pod will start on an existing node.  If you have planned downtime, you can cordon and drain a node.  Since the data is available in another location you will be able to start a new pod on anther node.  barring your PodDisruptionBudget settings, taints, and affinity, this may happen automatically.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/longhorn/longhorn/discussions/6964\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/3ef5e06da915e8435ecd50368f3eeb8e8f0e4ab29fb9f9a8617cf4465c9496bc/longhorn/longhorn/discussions/6964\" alt=\"Performance Difference between RWX and RWO volumes · longhorn longhorn · Discussion #6964 — Hey all, because of some internal testing I made a couple of experiments on our Cluster related to performance of RWX and RWO volumes. Because this might be of interest to some people I thought I s...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePerformance Difference between RWX and RWO volumes · longhorn longhorn · Discussion #6964\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHey all, because of some internal testing I made a couple of experiments on our Cluster related to performance of RWX and RWO volumes. Because this might be of interest to some people I thought I s...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting longhorn storage performance test, author does highlight right away that this is a simulation and not a REAL test.  I did not fully understand the storage semantics before reading through this.\n\n* **RWO** -  Always presents a filesystem `ext4` or `xfs`\n* **RWX**/**ROX** - Always presents a network share `nfs` to the pod.\n\nThis is an important distinction for applications that use sqlite or a tool on top of sqlite such as diskcache.  With sqlite it is not recomended to run over nfs due to missing required file locking mechanisms.  \n\nLonghorn storage still provides a lot of benefits to these applications as the storage is automatically replicated, if the node that your application is running on goes offline a new pod will start on an existing node.  If you have planned downtime, you can cordon and drain a node.  Since the data is available in another location you will be able to start a new pod on anther node.  barring your PodDisruptionBudget settings, taints, and affinity, this may happen automatically.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/longhorn/longhorn/discussions/6964",
      "date_published": "2025-08-15T19:13:56Z",
      "date_modified": "2025-08-15T19:13:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "longhorn",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-14-notes/",
      "url": "https://waylonwalker.com/2025-08-14-notes/",
      "title": "2025-08-14 Notes",
      "content_html": "\u003cp\u003eHuge progress on \u003ca href=\"https://waylonwalker.com/shots/\"\u003eshots\u003c/a\u003e not to be confused\nwith \u003ca href=\"https://shots.waylonwalker.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/shots.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/shots.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eshots\u003c/a\u003e inspired by\n\u003ca href=\"https://justin.searls.co/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justin.searls.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justin.searls.co.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://justin.searls.co/shots/\u003c/a\u003e.  I’m building out my own instagram grid\ndesign, right now its 4 wide, but I wonder if it should be 3 wide to match up\nwith the old instagram grid designs, and I could do cool crops like instagram\nused to.\u003c/p\u003e\n\u003cp\u003eI went through a bunch of old \u003ca href=\"/gratitude/\" class=\"wikilink\"\u003egratitude\u003c/a\u003e posts and pulled images from all\nof them, and update all of the images to use dropper while I was at it.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eMore work after kids bed time and came up with a great concept that needs to go\ninto markata, yes its more configuration.  \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e is quickly becoming\ndeath by config.  What I wanted was the ability to make different cards\ndifferent sizes.\u003c/p\u003e\n\u003cp\u003eWhat I came up with was adding “card_classes” to the front matter of the\nmarkdown file.  This is a list of classes that will be added to the card div\nwhen the card is rendered.  This way I can make cards different sizes.  Here\nare a couple of good results I had.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-15T01-35-08-108Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png\" alt=\"screenshot-2025-08-15T01-35-08-108Z.png\"/ data-glightbox=\"description: screenshot-2025-08-15T01-35-08-108Z.png\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA landscape shot of quarry lake\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-15T01-35-48-593Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png\" alt=\"screenshot-2025-08-15T01-35-48-593Z.png\"/ data-glightbox=\"description: screenshot-2025-08-15T01-35-48-593Z.png\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eAn image of Rhiannon and I at sunset\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eMade a bit of cyberbrink crane progress, glued in a few cables and put the cab\non top of the tower.\u003c/p\u003e\n",
      "content_text": "\nHuge progress on [shots](https://waylonwalker.com/shots/) not to be confused\nwith [shots](https://shots.waylonwalker.com) inspired by\n\u003chttps://justin.searls.co/shots/\u003e.  I'm building out my own instagram grid\ndesign, right now its 4 wide, but I wonder if it should be 3 wide to match up\nwith the old instagram grid designs, and I could do cool crops like instagram\nused to.\n\nI went through a bunch of old \u003ca href=\"/gratitude/\" class=\"wikilink\"\u003egratitude\u003c/a\u003e posts and pulled images from all\nof them, and update all of the images to use dropper while I was at it.\n\n---\n\nMore work after kids bed time and came up with a great concept that needs to go\ninto markata, yes its more configuration.  \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e is quickly becoming\ndeath by config.  What I wanted was the ability to make different cards\ndifferent sizes.\n\nWhat I came up with was adding \"card_classes\" to the front matter of the\nmarkdown file.  This is a list of classes that will be added to the card div\nwhen the card is rendered.  This way I can make cards different sizes.  Here\nare a couple of good results I had.\n\n![screenshot-2025-08-15T01-35-08-108Z.png](https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png)\n\n\u003e A landscape shot of quarry lake\n\n![screenshot-2025-08-15T01-35-48-593Z.png](https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png)\n\n\u003e An image of Rhiannon and I at sunset\n\n---\n\nMade a bit of cyberbrink crane progress, glued in a few cables and put the cab\non top of the tower.\n",
      "summary": "Huge progress on shots not to be confused with shots inspired by . I'm building out my own instagram grid design, right now its 4 wide, but I wonder if it...",
      "date_published": "2025-08-14T20:15:54Z",
      "date_modified": "2025-08-14T20:15:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/vrtmrz-obsidian-livesync/",
      "url": "https://waylonwalker.com/vrtmrz-obsidian-livesync/",
      "title": "⭐ vrtmrz obsidian-livesync",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/vrtmrz/obsidian-livesync\" 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\"\u003eobsidian-livesync\u003c/a\u003e, created by \u003ca href=\"https://github.com/vrtmrz\" 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\"\u003evrtmrz\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNo description available.\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [obsidian-livesync](https://github.com/vrtmrz/obsidian-livesync), created by [vrtmrz](https://github.com/vrtmrz).\n\nNo description available.\n",
      "summary": "If you're into interesting projects, don't miss out on obsidian-livesync, created by vrtmrz.",
      "date_published": "2025-08-14T13:29:15Z",
      "date_modified": "2025-08-14T13:29:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/syncthing-syncthing/",
      "url": "https://waylonwalker.com/syncthing-syncthing/",
      "title": "⭐ syncthing syncthing",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/syncthing\" 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\"\u003esyncthing’s\u003c/a\u003e project \u003ca href=\"https://github.com/syncthing/syncthing\" 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\"\u003esyncthing\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eOpen Source Continuous File Synchronization\u003c/p\u003e\n",
      "content_text": "\nI like [syncthing's](https://github.com/syncthing) project [syncthing](https://github.com/syncthing/syncthing).\n\nOpen Source Continuous File Synchronization\n",
      "summary": "I like syncthing's project syncthing.",
      "date_published": "2025-08-14T03:47:05Z",
      "date_modified": "2025-08-14T03:47:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-13-notes/",
      "url": "https://waylonwalker.com/2025-08-13-notes/",
      "title": "2025-08-13 Notes",
      "content_html": "\u003cp\u003eInspired by \u003ca href=\"https://justin.searls.co/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justin.searls.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justin.searls.co.ico\" class=\"has-avatar  has-avatar-before\"\u003eJustin Searls Shots\u003c/a\u003e, I made\nstarted \u003ca href=\"https://waylonwalker.com/shots/\"\u003emy own shots feed\u003c/a\u003e for \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e\nInstagram style photos.  The layout could use a lot of work, the feed seems\nlike its breaking on rebuild due to some cache issues, but its there and kind\nof works and eventually will get a proper prominently placed link, for now its\nan idea for anyone who sees this.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/\"\u003ehttps://waylonwalker.com/shots/\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBy the way what a boss domain searls.co is.  I’ve seen Chris Coyier just got\n\u003ca href=\"https://chriscoyier.net/2025/07/01/coyier-com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/chriscoyier.net.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/chriscoyier.net.jpg\" class=\"has-avatar  has-avatar-before\"\u003ecoyer.com\u003c/a\u003e and talked about\nbeing able to use it as a family domain.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nInspired by [Justin Searls Shots](https://justin.searls.co/shots/), I made\nstarted [my own shots feed](https://waylonwalker.com/shots/) for self hosted\nInstagram style photos.  The layout could use a lot of work, the feed seems\nlike its breaking on rebuild due to some cache issues, but its there and kind\nof works and eventually will get a proper prominently placed link, for now its\nan idea for anyone who sees this.\n\n\u003chttps://waylonwalker.com/shots/\u003e\n\n\u003e By the way what a boss domain searls.co is.  I've seen Chris Coyier just got\n\u003e [coyer.com](https://chriscoyier.net/2025/07/01/coyier-com/) and talked about\n\u003e being able to use it as a family domain.\n",
      "summary": "Inspired by Justin Searls Shots, I made started my own shots feed for self hosted Instagram style photos. The layout could use a lot of work, the feed seems...",
      "date_published": "2025-08-13T21:23:24Z",
      "date_modified": "2025-08-13T21:23:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-12-notes/",
      "url": "https://waylonwalker.com/2025-08-12-notes/",
      "title": "2025-08-12 Notes",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg\" class=\"glightbox-link\" aria-label=\"17550430467561838968532746154870.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg\" alt=\"17550430467561838968532746154870.jpg\"/ data-glightbox=\"description: 17550430467561838968532746154870.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eSad day yesterday.  We discovered that our freezer was left cracked over a day\nor so.  Kids self serviced themselves to some sausage dogs at some point and\nwedged the box in the door.  Everything was over 40F and done.\u003c/p\u003e\n\u003cp\u003eLessons learned for everyone.  For the kids, see something say something, food\nshould not come out of a freezer soft and barely fridge temp.  For the parents,\ndon’t get in a rush when loading the freezer.  If something doesn’t quite look\nlike it’s going to stay out, it probably won’t and next person to use it will\npay… Or you will pay when they don’t notice.  Last lesson for everyone, when\nyou come home late and tired from a family trip to Grandma’s and hear beeping\nit’s probably important and investigate.\u003c/p\u003e\n\u003chr/\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg\" class=\"glightbox-link\" aria-label=\"17550498066131861258207337996278.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg\" alt=\"17550498066131861258207337996278.jpg\"/ data-glightbox=\"description: 17550498066131861258207337996278.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI need some more ram… Was waiting out prime day, prices went up and haven’t\ngone down.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003ca href=\"https://forgejo.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/forgejo.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/forgejo.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eforgejo\u003c/a\u003e is pretty dope, played with it for awhile today\nlocally, create repos with curl, \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e push, actions working with multiple\nrunners.\u003c/p\u003e\n",
      "content_text": "\n![17550430467561838968532746154870.jpg](https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg)\n\nSad day yesterday.  We discovered that our freezer was left cracked over a day\nor so.  Kids self serviced themselves to some sausage dogs at some point and\nwedged the box in the door.  Everything was over 40F and done.\n\nLessons learned for everyone.  For the kids, see something say something, food\nshould not come out of a freezer soft and barely fridge temp.  For the parents,\ndon't get in a rush when loading the freezer.  If something doesn't quite look\nlike it's going to stay out, it probably won't and next person to use it will\npay... Or you will pay when they don't notice.  Last lesson for everyone, when\nyou come home late and tired from a family trip to Grandma's and hear beeping\nit's probably important and investigate.\n\n---\n\n![17550498066131861258207337996278.jpg](https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg)\n\nI need some more ram... Was waiting out prime day, prices went up and haven't\ngone down.\n\n---\n\n[forgejo](https://forgejo.org/) is pretty dope, played with it for awhile today\nlocally, create repos with curl, git push, actions working with multiple\nrunners.\n\n\n\n",
      "summary": "Sad day yesterday. We discovered that our freezer was left cracked over a day or so. Kids self serviced themselves to some sausage dogs at some point and...",
      "date_published": "2025-08-12T16:46:31Z",
      "date_modified": "2025-08-12T16:46:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/trying-forgejo/",
      "url": "https://waylonwalker.com/trying-forgejo/",
      "title": "trying forgejo",
      "content_html": "\u003cp\u003eWIP\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003enetworks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eforgejo\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eexternal\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003efalse\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eservices\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eserver\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ecodeberg.org/forgejo/forgejo:11\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainer_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eforgejo\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eenvironment\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003eUSER_UID=1000\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003eUSER_GID=1000\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erestart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ealways\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003enetworks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003eforgejo\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003e./forgejo:/data\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eports\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"s1\"\u003e\u0026#39;3000:3000\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"s1\"\u003e\u0026#39;2222:22\u0026#39;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003edocker-in-docker\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edocker:dind\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainer_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edocker_dind\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eprivileged\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ecommand\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;dockerd\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;-H\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;tcp://0.0.0.0:2375\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;--tls=false\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erestart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eunless-stopped\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003enetworks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"l\"\u003eforgejo]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003erunner\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edata.forgejo.org/forgejo/runner:4.0.0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainer_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eforgejo-runner\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003euser\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;1001:1001\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003edepends_on\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003edocker-in-docker\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eenvironment\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eDOCKER_HOST\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003etcp://docker-in-docker:2375\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"l\"\u003e./runner-data:/data:Z,U\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"c\"\u003e# will hold .runner + cache\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ecommand\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/bin/sh -c \u0026#34;while :; do sleep 1; done\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erestart\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eunless-stopped\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003enetworks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"l\"\u003eforgejo]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nWIP\n\n``` yaml\nnetworks:\n  forgejo:\n    external: false\nservices:\n  server:\n    image: codeberg.org/forgejo/forgejo:11\n    container_name: forgejo\n    environment:\n      - USER_UID=1000\n      - USER_GID=1000\n    restart: always\n    networks:\n      - forgejo\n    volumes:\n      - ./forgejo:/data\n    ports:\n      - '3000:3000'\n      - '2222:22'\n  docker-in-docker:\n    image: docker:dind\n    container_name: docker_dind\n    privileged: true\n    command: [\"dockerd\", \"-H\", \"tcp://0.0.0.0:2375\", \"--tls=false\"]\n    restart: unless-stopped\n    networks: [forgejo]\n  runner:\n    image: data.forgejo.org/forgejo/runner:4.0.0\n    container_name: forgejo-runner\n    user: \"1001:1001\"\n    depends_on:\n      - docker-in-docker\n    environment:\n      DOCKER_HOST: tcp://docker-in-docker:2375\n    volumes:\n      - ./runner-data:/data:Z,U # will hold .runner + cache\n    command: /bin/sh -c \"while :; do sleep 1; done\"\n    restart: unless-stopped\n    networks: [forgejo]\n```\n",
      "summary": "WIP",
      "date_published": "2025-08-12T11:57:42Z",
      "date_modified": "2025-08-12T11:57:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-796/",
      "url": "https://waylonwalker.com/thought-796/",
      "title": "💭 GitHub Ensloppification – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/08/11/github-ensloppification/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2025-08-11-github-ensloppification.png\" alt=\"GitHub Ensloppification — The one where I say goodbye to GitHub\" loading=\"lazy\"/ data-glightbox=\"description: GitHub Ensloppification — The one where I say goodbye to GitHub\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub Ensloppification\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I say goodbye to GitHub\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDavid’s got me looking at Forgejo.  I’ve seen a lot of GitHub jumpers just this week, and I’ve been tempted for a long time to self host one anyways, so it might be time.  I don’t have hard issues with anything, I just like self hosting my own personal stuff.\u003c/p\u003e\n\u003cp\u003eOn the flipside, I hope this does not turn yet another thing to shit.  I lived through the download software from sourceforge and hope you get the right download now button and not the one from the virus ad.  I’m not putting my really public/useful projects on a \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e platform… well not as the \u003cstrong\u003eonly\u003c/strong\u003e source, I see how that comes off edgy.  I like having some trust in the platform.  Currently theres a lot of issues with M$ and GitHub using you for your data, but I don’t think injecting virus, malware, bitcoin miners is a worry I have coming from a GitHub release, unless it was put there by the author.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/08/11/github-ensloppification/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2025-08-11-github-ensloppification.png\" alt=\"GitHub Ensloppification — The one where I say goodbye to GitHub\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub Ensloppification\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I say goodbye to GitHub\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDavid's got me looking at Forgejo.  I've seen a lot of GitHub jumpers just this week, and I've been tempted for a long time to self host one anyways, so it might be time.  I don't have hard issues with anything, I just like self hosting my own personal stuff.\n\nOn the flipside, I hope this does not turn yet another thing to shit.  I lived through the download software from sourceforge and hope you get the right download now button and not the one from the virus ad.  I'm not putting my really public/useful projects on a self hosted platform... well not as the **only** source, I see how that comes off edgy.  I like having some trust in the platform.  Currently theres a lot of issues with M$ and GitHub using you for your data, but I don't think injecting virus, malware, bitcoin miners is a worry I have coming from a GitHub release, unless it was put there by the author.\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2025/08/11/github-ensloppification/",
      "date_published": "2025-08-12T02:29:16Z",
      "date_modified": "2025-08-12T02:29:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-795/",
      "url": "https://waylonwalker.com/thought-795/",
      "title": "💭 Note-taking \u0026 Editors - awesome-selfhosted",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://awesome-selfhosted.net/tags/note-taking--editors.html\" class=\"glightbox-link\" aria-label=\"https://awesome-selfhosted.net/tags/note-taking–editors.html\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://awesome-selfhosted.net/tags/note-taking--editors.html\" alt=\"https://awesome-selfhosted.net/tags/note-taking–editors.html\"/ data-glightbox=\"description: https://awesome-selfhosted.net/tags/note-taking–editors.html\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eGreat list of \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e markdown editors. Looking for a good one for my wife and family to use that does not look like editing code.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://awesome-selfhosted.net/tags/note-taking--editors.html](/static/https://awesome-selfhosted.net/tags/note-taking--editors.html)\n\nGreat list of self hosted markdown editors. Looking for a good one for my wife and family to use that does not look like editing code.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://awesome-selfhosted.net/tags/note-taking--editors.html",
      "date_published": "2025-08-11T14:27:23Z",
      "date_modified": "2025-08-11T14:27:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/pythops-impala/",
      "url": "https://waylonwalker.com/pythops-impala/",
      "title": "⭐ pythops impala",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/pythops\" 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\"\u003epythops\u003c/a\u003e and their project \u003ca href=\"https://github.com/pythops/impala\" 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\"\u003eimpala\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e🛜 TUI for managing wifi on Linux\u003c/p\u003e\n",
      "content_text": "\nCheck out [pythops](https://github.com/pythops) and their project [impala](https://github.com/pythops/impala).\n\n🛜 TUI for managing wifi on Linux\n",
      "summary": "Check out pythops and their project impala.",
      "date_published": "2025-08-10T17:53:51Z",
      "date_modified": "2025-08-10T17:53:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-794/",
      "url": "https://waylonwalker.com/thought-794/",
      "title": "💭 Slops | justin․searls․co",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justin.searls.co/slops/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://justin.searls.co/img/square.png\" alt=\"Slops — AI-generated slop that I thought was worth sharing.\" loading=\"lazy\"/ data-glightbox=\"description: Slops — AI-generated slop that I thought was worth sharing.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSlops\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAI-generated slop that I thought was worth sharing.\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustin․searls․co · justin.searls.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eJustin has such great feeds on his site, I love how the main feeds are so prominant just to the left of the article you are reading.  \u003ccode\u003eslops\u003c/code\u003e in particular feels like a great category.  Saving this chat for later, or found it particularly interesting, but don’t really want to make a post about it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://justin.searls.co/slops/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://justin.searls.co/img/square.png\" alt=\"Slops — AI-generated slop that I thought was worth sharing.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSlops\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAI-generated slop that I thought was worth sharing.\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustin․searls․co \u0026middot; justin.searls.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nJustin has such great feeds on his site, I love how the main feeds are so prominant just to the left of the article you are reading.  `slops` in particular feels like a great category.  Saving this chat for later, or found it particularly interesting, but don't really want to make a post about it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://justin.searls.co/slops/",
      "date_published": "2025-08-10T17:41:56Z",
      "date_modified": "2025-08-10T17:41:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/yarrick-iodine/",
      "url": "https://waylonwalker.com/yarrick-iodine/",
      "title": "⭐ yarrick iodine",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/yarrick/iodine\" 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\"\u003eiodine\u003c/a\u003e by \u003ca href=\"https://github.com/yarrick\" 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\"\u003eyarrick\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eOfficial \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repo for iodine dns tunnel\u003c/p\u003e\n",
      "content_text": "\n[iodine](https://github.com/yarrick/iodine) by [yarrick](https://github.com/yarrick) is a game-changer in its space. Excited to see how it evolves.\n\nOfficial git repo for iodine dns tunnel\n",
      "summary": "iodine by yarrick is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-08-10T17:09:19Z",
      "date_modified": "2025-08-10T17:09:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-793/",
      "url": "https://waylonwalker.com/thought-793/",
      "title": "💭 noah on X: \"this is about to be my go to on plane flights. u d...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/noahgsolomon/status/1954035351510716670\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ekinda wild, you can chat with an ai bot over a dns request??\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/noahgsolomon/status/1954035351510716670\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nkinda wild, you can chat with an ai bot over a dns request??\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/noahgsolomon/status/1954035351510716670",
      "date_published": "2025-08-10T17:07:18Z",
      "date_modified": "2025-08-10T17:07:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-792/",
      "url": "https://waylonwalker.com/thought-792/",
      "title": "💭 blakewatson.com              - blakewatson.com turns 20",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blakewatson.com/journal/blakewatson-com-turns-twenty/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"/assets/images/og-image.png\" alt=\"blakewatson.com turns 20 - blakewatson.com — I bought this domain as a college student using a friend’s credit card. Twenty years later, it’s one of the best decisions I\u0026#39;ve ever made.\" loading=\"lazy\"/ data-glightbox=\"description: blakewatson.com turns 20 - blakewatson.com — I bought this domain as a college student using a friend’s credit card. Twenty years later, it’s one of the best decisions I\u0026#39;ve ever made.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eblakewatson.com turns 20 - blakewatson.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI bought this domain as a college student using a friend’s credit card. Twenty years later, it’s one of the best decisions I\u0026#39;ve ever made.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblakewatson.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e20 years is a long time to work on something, congrats Blake!  So many great links to small web creators, why, and how to build your own site.\u003c/p\u003e\n\u003cp\u003eAs algos turn to shit the small web remains a space that cannot be ruined.  There will always be rss feeds from real humans writing for other humans.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blakewatson.com/journal/blakewatson-com-turns-twenty/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"/assets/images/og-image.png\" alt=\"blakewatson.com turns 20 - blakewatson.com — I bought this domain as a college student using a friend’s credit card. Twenty years later, it’s one of the best decisions I\u0026#39;ve ever made.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eblakewatson.com turns 20 - blakewatson.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI bought this domain as a college student using a friend’s credit card. Twenty years later, it’s one of the best decisions I\u0026#39;ve ever made.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblakewatson.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n20 years is a long time to work on something, congrats Blake!  So many great links to small web creators, why, and how to build your own site.\n\nAs algos turn to shit the small web remains a space that cannot be ruined.  There will always be rss feeds from real humans writing for other humans.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blakewatson.com/journal/blakewatson-com-turns-twenty/",
      "date_published": "2025-08-09T19:48:58Z",
      "date_modified": "2025-08-09T19:48:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "web",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/termix-ssh-termix/",
      "url": "https://waylonwalker.com/termix-ssh-termix/",
      "title": "⭐ Termix-SSH Termix",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/Termix-SSH/Termix\" 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\"\u003eTermix\u003c/a\u003e by \u003ca href=\"https://github.com/Termix-SSH\" 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\"\u003eTermix-SSH\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eTermix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities.\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [Termix](https://github.com/Termix-SSH/Termix) by [Termix-SSH](https://github.com/Termix-SSH), and it's truly impressive.\n\nTermix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities.\n",
      "summary": "I recently discovered Termix by Termix-SSH, and it's truly impressive.",
      "date_published": "2025-08-09T14:50:37Z",
      "date_modified": "2025-08-09T14:50:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-791/",
      "url": "https://waylonwalker.com/thought-791/",
      "title": "💭 ThePrimeagen on X: \"there is literally no universe that this i...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ThePrimeagen/status/1953502301173244004\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003ethere is literally no universe that this is true\n10k lines and its not bug filled crap?  ok Lex Luthor, its time to step away from the keys\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIs this 10k real production code?  Dry in the sense that it hasn’t re-implemented the same s3 api dozens of time?   What language are we talking something dense like python? something very verbose like \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e? Maybe a language where you implement everything from scratch like lua.  This matters a lot.  Playing with little POC applications that dont mean anything I can quickly come up with 500-1k likes of code that I may never look at again.  I’m sure I can come up wtih 10k decent lines of code a day.\u003c/p\u003e\n\u003cp\u003eBut for the same application without duplicating everything over and over?  For something that moves the needle and really matters?? \u003cstrong\u003eevery single day\u003c/strong\u003e?? Consistently +10k, not 10k changes, not 10k deletes of yesterdays code. nah thats wack.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ThePrimeagen/status/1953502301173244004\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e there is literally no universe that this is true\n10k lines and its not bug filled crap?  ok Lex Luthor, its time to step away from the keys\n\nIs this 10k real production code?  Dry in the sense that it hasn't re-implemented the same s3 api dozens of time?   What language are we talking something dense like python? something very verbose like html? Maybe a language where you implement everything from scratch like lua.  This matters a lot.  Playing with little POC applications that dont mean anything I can quickly come up with 500-1k likes of code that I may never look at again.  I'm sure I can come up wtih 10k decent lines of code a day.  \n\nBut for the same application without duplicating everything over and over?  For something that moves the needle and really matters?? **every single day**?? Consistently +10k, not 10k changes, not 10k deletes of yesterdays code. nah thats wack.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/ThePrimeagen/status/1953502301173244004",
      "date_published": "2025-08-09T00:09:36Z",
      "date_modified": "2025-08-09T00:09:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-08-notes/",
      "url": "https://waylonwalker.com/2025-08-08-notes/",
      "title": "2025-08-08 Notes",
      "content_html": "\u003ch2 id=\"this-web-aint-what-it-used-to-be\"\u003eThis Web ain’t what it used to be \u003ca href=\"#this-web-aint-what-it-used-to-be\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI found this \u003ca href=\"https://bsky.app/profile/miriam.codes/post/3lvuib52f7222\" 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\"\u003epost\u003c/a\u003e\nfrom \u003ca href=\"https://miriam.codes\"\u003emiriam.codes\u003c/a\u003e while reading \u003ca href=\"https://dbushell.com/notes/2025-08-08T05:38Z/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dbushell.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dbushell.com.ico\" class=\"has-avatar  has-avatar-before\"\u003edbushell’s\nnotes\u003c/a\u003e.  I kinda agree with\nMiriam and David here.  AI is really making me feel like an old curmudgeon.\nEvery day it gets more enshitified, filled with more nonsense, more hate, more\n“fake news” which all news gets labeled as these days, nothing is credible to\nanyone anymore.\u003c/p\u003e\n\u003cp\u003eWhat I’m here for is still plugging away at my own site, trying harder than\never to find real people with real websites, who write real content that I\nenjoy.  I’m going to continue staying in my lane, making notes that no one will\nread, leaving thoughts no one will read, writing blog posts that might reach\n10s of people who really care.\u003c/p\u003e\n\u003cp\u003eYouTube still feels like a safe place.  I see more and  more \u003ca href=\"/ai-slop/\" class=\"glossary-term\" title=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\"\u003eAI slop\u003c/a\u003e popping up\nand off, but it doesn’t hit my feed, happy for that so far.  I do see a lot of\ncreators using AI thumbnails, Most look obvious, but some feel like uncanny\nfaces of the people I follow and it’s weird.  I think I follow the exact\naverage of the 2025 YT watcher, I watch a handful of the top 100 channels, and\na bunch of sub 1M average joes.  These all feel like people just sharing their\nstory.  A lot of them have Orange County Choppers Season 1 vibes, we are just\nmaking good content about trying to make it in the world.  They haven’t yet\ndescended into the madness that OCC became in its later seasons that was all\nabout building drama that tore the family apart.\u003c/p\u003e\n\u003ch2 id=\"moss-knight-from-a-hrefhollow-knight-home-row-layout-classwikilink-data-titlehollow-knight-home-row-layout-data-descriptioni-just-made-it-past-100-in-my-main-hollow-knight-run-so-now-i-will-allow-myself-to-get-silksong-when-it-comes-out-i-did-this-with-a-little-bit-of-yt-data-date2025-05-05hollow-knight-home-row-layouta\"\u003eMoss Knight from \u003ca href=\"/hollow-knight-home-row-layout/\" class=\"wikilink\" data-title=\"hollow knight home row layout\" data-description=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\" data-date=\"2025-05-05\" data-preview=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\"\u003ehollow knight home row layout\u003c/a\u003e \u003ca href=\"#moss-knight-from-a-hrefhollow-knight-home-row-layout-classwikilink-data-titlehollow-knight-home-row-layout-data-descriptioni-just-made-it-past-100-in-my-main-hollow-knight-run-so-now-i-will-allow-myself-to-get-silksong-when-it-comes-out-i-did-this-with-a-little-bit-of-yt-data-date2025-05-05hollow-knight-home-row-layouta\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI took a break for awhile on the game, my son got bored and moved on.  He tends\nto switch out games a lot faster than me.  I came back to it tonight after a\nfew months off and just got some geo from the moss knights for awhile.  I got\nthis decent clip of clearing them, I’m no pro, but getting better at timing on\nthe keeb layout.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-moss-knight.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-moss-knight.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"cyberbrick-crane-progress\"\u003eCyberbrick Crane Progress \u003ca href=\"#cyberbrick-crane-progress\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMade some progress on the cyberbrick crane that I am building with Wyatt.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/038e01d4-d2c8-4635-83d2-43a04c076ab6.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-09T01-11-50-464Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/038e01d4-d2c8-4635-83d2-43a04c076ab6.png\" alt=\"screenshot-2025-08-09T01-11-50-464Z.png\"/ data-glightbox=\"description: screenshot-2025-08-09T01-11-50-464Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n## This Web ain't what it used to be\n\nI found this [post](https://bsky.app/profile/miriam.codes/post/3lvuib52f7222)\nfrom [miriam.codes](https://miriam.codes) while reading [dbushell's\nnotes](https://dbushell.com/notes/2025-08-08T05:38Z/).  I kinda agree with\nMiriam and David here.  AI is really making me feel like an old curmudgeon.\nEvery day it gets more enshitified, filled with more nonsense, more hate, more\n\"fake news\" which all news gets labeled as these days, nothing is credible to\nanyone anymore.\n\nWhat I'm here for is still plugging away at my own site, trying harder than\never to find real people with real websites, who write real content that I\nenjoy.  I'm going to continue staying in my lane, making notes that no one will\nread, leaving thoughts no one will read, writing blog posts that might reach\n10s of people who really care.\n\nYouTube still feels like a safe place.  I see more and  more AI slop popping up\nand off, but it doesn't hit my feed, happy for that so far.  I do see a lot of\ncreators using AI thumbnails, Most look obvious, but some feel like uncanny\nfaces of the people I follow and it's weird.  I think I follow the exact\naverage of the 2025 YT watcher, I watch a handful of the top 100 channels, and\na bunch of sub 1M average joes.  These all feel like people just sharing their\nstory.  A lot of them have Orange County Choppers Season 1 vibes, we are just\nmaking good content about trying to make it in the world.  They haven't yet\ndescended into the madness that OCC became in its later seasons that was all\nabout building drama that tore the family apart.\n\n## Moss Knight from \u003ca href=\"/hollow-knight-home-row-layout/\" class=\"wikilink\" data-title=\"hollow knight home row layout\" data-description=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\" data-date=\"2025-05-05\"\u003ehollow knight home row layout\u003c/a\u003e\n\nI took a break for awhile on the game, my son got bored and moved on.  He tends\nto switch out games a lot faster than me.  I came back to it tonight after a\nfew months off and just got some geo from the moss knights for awhile.  I got\nthis decent clip of clearing them, I'm no pro, but getting better at timing on\nthe keeb layout.\n\n![hollow-knight-keeb-moss-knight.mp4](https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4)\n\n## Cyberbrick Crane Progress\n\nMade some progress on the cyberbrick crane that I am building with Wyatt.\n\n![screenshot-2025-08-09T01-11-50-464Z.png](https://dropper.waylonwalker.com/api/file/038e01d4-d2c8-4635-83d2-43a04c076ab6.png)\n",
      "summary": "I found this post from miriam.codes while reading dbushell's notes. I kinda agree with Miriam and David here. AI is really making me feel like an old...",
      "date_published": "2025-08-08T19:28:06Z",
      "date_modified": "2025-08-08T19:28:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/nwg-piotr-nwg-look/",
      "url": "https://waylonwalker.com/nwg-piotr-nwg-look/",
      "title": "⭐ nwg-piotr nwg-look",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/nwg-piotr/nwg-look\" 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\"\u003enwg-look\u003c/a\u003e, created by \u003ca href=\"https://github.com/nwg-piotr\" 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\"\u003enwg-piotr\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eGTK3 settings editor adapted to work in the wlroots environment\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [nwg-look](https://github.com/nwg-piotr/nwg-look), created by [nwg-piotr](https://github.com/nwg-piotr).\n\nGTK3 settings editor adapted to work in the wlroots environment\n",
      "summary": "If you're into interesting projects, don't miss out on nwg-look, created by nwg-piotr.",
      "date_published": "2025-08-08T15:04:28Z",
      "date_modified": "2025-08-08T15:04:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-790/",
      "url": "https://waylonwalker.com/thought-790/",
      "title": "💭 The Brutalist Report",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://brutalist.report/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/brutalist.report.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/brutalist.report.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe Brutalist Report\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe day\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebrutalist.report\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDiscovered the Brutalist Report from \u003ca href=\"https://coding.garden/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/coding.garden.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/coding.garden.png\" class=\"has-avatar  has-avatar-before\"\u003eCJ\u003c/a\u003e on \u003ca href=\"syntax.fm\"\u003esyntax.fm\u003c/a\u003e on their \u003ca href=\"https://syntax.fm/show/926/rss-is-not-dead\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/syntax.fm.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/syntax.fm.png\" class=\"has-avatar  has-avatar-before\"\u003erss-is-not-dead\u003c/a\u003e episode.  The way he described it, I was like gnaw thats whack, not into it, but I had to check it out.  It’s actually great!  Except the political shit, I go to rss to get away from political finger pointing.  The Hacker News list is great, maybe I need to pay more attention to hacker news??\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://brutalist.report/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe Brutalist Report\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe day\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebrutalist.report\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDiscovered the Brutalist Report from [CJ](https://coding.garden/) on [syntax.fm](syntax.fm) on their [rss-is-not-dead](https://syntax.fm/show/926/rss-is-not-dead) episode.  The way he described it, I was like gnaw thats whack, not into it, but I had to check it out.  It's actually great!  Except the political shit, I go to rss to get away from political finger pointing.  The Hacker News list is great, maybe I need to pay more attention to hacker news??\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://brutalist.report/",
      "date_published": "2025-08-08T02:12:48Z",
      "date_modified": "2025-08-08T02:12:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-789/",
      "url": "https://waylonwalker.com/thought-789/",
      "title": "💭 Omarchy is on the move",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://world.hey.com/dhh/omarchy-is-on-the-move-8f848fa4\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://world.hey.com/dhh/avatar-fb368b1ee9b185dc2a09b03eabdb61678dd55244\" alt=\"Omarchy is on the move — Omarchy has been improving at a furious pace. Since it was first released on June 26, I\u0026#39;ve pushed out 18(!) new releases together with a rapidly growing community of collaborators, users, and new-to-Linux enthusiasts. We have about 3,500 early adopters on the Omarchy Discord, 250 pull requests processed, and one heck of an awesome Arch...\" loading=\"lazy\"/ data-glightbox=\"description: Omarchy is on the move — Omarchy has been improving at a furious pace. Since it was first released on June 26, I\u0026#39;ve pushed out 18(!) new releases together with a rapidly growing community of collaborators, users, and new-to-Linux enthusiasts. We have about 3,500 early adopters on the Omarchy Discord, 250 pull requests processed, and one heck of an awesome Arch...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOmarchy is on the move\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOmarchy has been improving at a furious pace. Since it was first released on June 26, I\u0026#39;ve pushed out 18(!) new releases together with a rapidly growing community of collaborators, users, and new-t...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eworld.hey.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIt’s facinating how many people are making the jump from mac/windows, not just to linux, not just to archlinux, but to a full on tiling window manager.  DHH has omakub and omarchy.  Omakub is advertised as easy and for beginners, but many are skipping right over that to go straight for the hard stuff.\u003c/p\u003e\n\u003cp\u003eDHH mentions hyprland here, one thing I think he is missing is that this is the first real mainstream tiling window manager that is a competitor to i3, awesomewm, qtile  that runs Wayland.  I think they were able to pull a bunch of great benefits such as lack of screen tearing and animations from this.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://world.hey.com/dhh/omarchy-is-on-the-move-8f848fa4\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://world.hey.com/dhh/avatar-fb368b1ee9b185dc2a09b03eabdb61678dd55244\" alt=\"Omarchy is on the move — Omarchy has been improving at a furious pace. Since it was first released on June 26, I\u0026#39;ve pushed out 18(!) new releases together with a rapidly growing community of collaborators, users, and new-to-Linux enthusiasts. We have about 3,500 early adopters on the Omarchy Discord, 250 pull requests processed, and one heck of an awesome Arch...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOmarchy is on the move\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOmarchy has been improving at a furious pace. Since it was first released on June 26, I\u0026#39;ve pushed out 18(!) new releases together with a rapidly growing community of collaborators, users, and new-t...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eworld.hey.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIt's facinating how many people are making the jump from mac/windows, not just to linux, not just to archlinux, but to a full on tiling window manager.  DHH has omakub and omarchy.  Omakub is advertised as easy and for beginners, but many are skipping right over that to go straight for the hard stuff.\n\nDHH mentions hyprland here, one thing I think he is missing is that this is the first real mainstream tiling window manager that is a competitor to i3, awesomewm, qtile  that runs Wayland.  I think they were able to pull a bunch of great benefits such as lack of screen tearing and animations from this.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://world.hey.com/dhh/omarchy-is-on-the-move-8f848fa4",
      "date_published": "2025-08-07T14:28:34Z",
      "date_modified": "2025-08-07T14:28:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-788/",
      "url": "https://waylonwalker.com/thought-788/",
      "title": "💭 YouTube has earned its crown",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://world.hey.com/dhh/youtube-has-earned-its-crown-48f12ccc\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://world.hey.com/dhh/avatar-fb368b1ee9b185dc2a09b03eabdb61678dd55244\" alt=\"YouTube has earned its crown — I often give Google a lot of shit for shutting down services whenever they\u0026#39;re bored, hire a new executive, or face a three-day weekend. The company seems institutionally incapable of standing behind the majority of the products they launch for longer than a KPI cycle. But when the company does decide that something is pivotal to the bu...\" loading=\"lazy\"/ data-glightbox=\"description: YouTube has earned its crown — I often give Google a lot of shit for shutting down services whenever they\u0026#39;re bored, hire a new executive, or face a three-day weekend. The company seems institutionally incapable of standing behind the majority of the products they launch for longer than a KPI cycle. But when the company does decide that something is pivotal to the bu...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYouTube has earned its crown\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI often give Google a lot of shit for shutting down services whenever they\u0026#39;re bored, hire a new executive, or face a three-day weekend. The company seems institutionally incapable of standing behin...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eworld.hey.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI wonder how much of \u003ca href=\"https://killedbygoogle.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/killedbygoogle.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/killedbygoogle.com.png\" class=\"has-avatar  has-avatar-before\"\u003ekilled-by-google\u003c/a\u003e is due to is \u003ca href=\"https://thoughts.waylonwalker.com/post/787\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003e20 percent time\u003c/a\u003e.  Allowing engineers to follow a passion project turns into a real product that doesn’t have full backing and support of the company.\u003c/p\u003e\n\u003cp\u003esimilar to DHH as much as I am hurt by reader and all of their privacy BS that comes from ad based revenue I appreciate YouTube and them supporting all of the creators on it.  Giving a platform for small creators the ability to sustain themselves and reach a larch audience without big coorporate rules.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://world.hey.com/dhh/youtube-has-earned-its-crown-48f12ccc\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://world.hey.com/dhh/avatar-fb368b1ee9b185dc2a09b03eabdb61678dd55244\" alt=\"YouTube has earned its crown — I often give Google a lot of shit for shutting down services whenever they\u0026#39;re bored, hire a new executive, or face a three-day weekend. The company seems institutionally incapable of standing behind the majority of the products they launch for longer than a KPI cycle. But when the company does decide that something is pivotal to the bu...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYouTube has earned its crown\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI often give Google a lot of shit for shutting down services whenever they\u0026#39;re bored, hire a new executive, or face a three-day weekend. The company seems institutionally incapable of standing behin...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eworld.hey.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI wonder how much of [killed-by-google](https://killedbygoogle.com/) is due to is [20 percent time](https://thoughts.waylonwalker.com/post/787).  Allowing engineers to follow a passion project turns into a real product that doesn't have full backing and support of the company.\n\nsimilar to DHH as much as I am hurt by reader and all of their privacy BS that comes from ad based revenue I appreciate YouTube and them supporting all of the creators on it.  Giving a platform for small creators the ability to sustain themselves and reach a larch audience without big coorporate rules.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://world.hey.com/dhh/youtube-has-earned-its-crown-48f12ccc",
      "date_published": "2025-08-07T14:22:58Z",
      "date_modified": "2025-08-07T14:22:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tech",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-787/",
      "url": "https://waylonwalker.com/thought-787/",
      "title": "💭 20 Percent Time – Ted Merz",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com\" class=\"glightbox-link\" aria-label=\"https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com\" alt=\"https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com\"/ data-glightbox=\"description: https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eGoogles 20 percent time is fascinating to me.  It seems like a great way for engineers to fill up their tank with new skills, passion projects, and the need to scratch an itch.  To me these days it feels like something that would incentivize good talent to join.\u003c/p\u003e\n\u003cp\u003eI can remember back earlier in my career December and January were slow months for big companies.  Riddled with vacation and annual planning cycle.  I would use this time to create tools and libraries that would help me move quicker throughout the year.\u003c/p\u003e\n\u003cp\u003eI clearly remember having a conversation with a colleague several salary grades ahead of me come mid February asking what I was up to.  I was furiously pecking away at some of these projects while he let me know that he had been waiting for this years plan for months and had no tasks from the boss.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThat said, I don’t think any major tech company is going to adopt 20% time these days. It’s too chaotic, too hard to manage and impossible to measure.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis line from Ted feels exactly why 20 percent time generally blows up and likely turns into another \u003ca href=\"https://killedbygoogle.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/killedbygoogle.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/killedbygoogle.com.png\" class=\"has-avatar  has-avatar-before\"\u003ekilled-by-google\u003c/a\u003e product that has a small user base and is furious about it being killed.  With enough of these at least one \u003cstrong\u003ecough\u003c/strong\u003e \u003cem\u003ereader\u003c/em\u003e \u003cstrong\u003ecough\u003c/strong\u003e has affected us all.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com](/static/https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com)\n\nGoogles 20 percent time is fascinating to me.  It seems like a great way for engineers to fill up their tank with new skills, passion projects, and the need to scratch an itch.  To me these days it feels like something that would incentivize good talent to join.\n\nI can remember back earlier in my career December and January were slow months for big companies.  Riddled with vacation and annual planning cycle.  I would use this time to create tools and libraries that would help me move quicker throughout the year.  \n\nI clearly remember having a conversation with a colleague several salary grades ahead of me come mid February asking what I was up to.  I was furiously pecking away at some of these projects while he let me know that he had been waiting for this years plan for months and had no tasks from the boss.\n\n\u003e That said, I don’t think any major tech company is going to adopt 20% time these days. It’s too chaotic, too hard to manage and impossible to measure.\n\nThis line from Ted feels exactly why 20 percent time generally blows up and likely turns into another [killed-by-google](https://killedbygoogle.com/) product that has a small user base and is furious about it being killed.  With enough of these at least one **cough** _reader_ **cough** has affected us all.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://ted-merz.com/2022/09/14/20-percent-time/?utm_source=chatgpt.com",
      "date_published": "2025-08-07T14:19:33Z",
      "date_modified": "2025-08-07T14:19:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tech",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-786/",
      "url": "https://waylonwalker.com/thought-786/",
      "title": "💭 Blog @ tonsky.me",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tonsky.me/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dynogee.com/gen?id=24m2qx9uethuw6p\u0026amp;title=That+yellow+website\" alt=\"Blog\" loading=\"lazy\"/ data-glightbox=\"description: Blog\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBlog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etonsky.me · tonsky.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eNiki has one of the coolest yet simple personal sites that I have seen in a long time.  We need more of this on the internet!  hover over his face, try dark mode, submit personal data, there are so many really cool Easter eggs to discover!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tonsky.me/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dynogee.com/gen?id=24m2qx9uethuw6p\u0026amp;title=That+yellow+website\" alt=\"Blog\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBlog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etonsky.me \u0026middot; tonsky.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNiki has one of the coolest yet simple personal sites that I have seen in a long time.  We need more of this on the internet!  hover over his face, try dark mode, submit personal data, there are so many really cool Easter eggs to discover!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://tonsky.me/",
      "date_published": "2025-08-06T20:35:25Z",
      "date_modified": "2025-08-06T20:35:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-785/",
      "url": "https://waylonwalker.com/thought-785/",
      "title": "💭 We shouldn’t have needed lockfiles @ tonsky.me",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tonsky.me/blog/lockfiles/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dynogee.com/gen?id=24m2qx9uethuw6p\u0026amp;title=We+shouldn%E2%80%99t+have+needed+lockfiles\" alt=\"We shouldn’t have needed lockfiles — Lockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.\" loading=\"lazy\"/ data-glightbox=\"description: We shouldn’t have needed lockfiles — Lockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWe shouldn’t have needed lockfiles\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etonsky.me · tonsky.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI wholeheartedly agree that packaging is broken, semver is broken, expecting much better from a system of oss that is built on top of volunteers, passion projects, nights and weekends is a fools errand.  With that I disagree that we we dont need lockfiles.  Maybe its Nikki’s experience in java and my lack that puts us on this opposite spectrum, but without lockfiles the world changes underneath us as we release.  One small change to your source can introduce a whole set of new features/bugs that you did not plan on without a good locking system.  It can also cause you to need to do dependency resolution at application build time and not ahead of time.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tonsky.me/blog/lockfiles/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dynogee.com/gen?id=24m2qx9uethuw6p\u0026amp;title=We+shouldn%E2%80%99t+have+needed+lockfiles\" alt=\"We shouldn’t have needed lockfiles — Lockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWe shouldn’t have needed lockfiles\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLockfiles are an absolutely unnecessary concept that complicates things without a good reason. Dependency managers can and are working without it just the same.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etonsky.me \u0026middot; tonsky.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI wholeheartedly agree that packaging is broken, semver is broken, expecting much better from a system of oss that is built on top of volunteers, passion projects, nights and weekends is a fools errand.  With that I disagree that we we dont need lockfiles.  Maybe its Nikki's experience in java and my lack that puts us on this opposite spectrum, but without lockfiles the world changes underneath us as we release.  One small change to your source can introduce a whole set of new features/bugs that you did not plan on without a good locking system.  It can also cause you to need to do dependency resolution at application build time and not ahead of time.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://tonsky.me/blog/lockfiles/",
      "date_published": "2025-08-06T20:11:31Z",
      "date_modified": "2025-08-06T20:11:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-784/",
      "url": "https://waylonwalker.com/thought-784/",
      "title": "💭 I Will Fucking Piledrive You If You Mention AI Again — Ludicity",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at\" class=\"glightbox-link\" aria-label=\"https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at\" alt=\"https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at\"/ data-glightbox=\"description: https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eFantastic write up on their experience in ai, opinions on ai being a hoax with a veil of reasonable usefulness.  Arguing that most people do not understand enough to see the difference, and thought leaders see where it is now, see where it was yesterday, it must be going to general intelligence tomorrow and you all will loose your jobs without this.  I appreciate the satirical language here.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at](/static/https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at)\n\nFantastic write up on their experience in ai, opinions on ai being a hoax with a veil of reasonable usefulness.  Arguing that most people do not understand enough to see the difference, and thought leaders see where it is now, see where it was yesterday, it must be going to general intelligence tomorrow and you all will loose your jobs without this.  I appreciate the satirical language here.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you-if-you-mention-ai-again/?ref=wheresyoured.at",
      "date_published": "2025-08-06T16:39:28Z",
      "date_modified": "2025-08-06T16:39:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-783/",
      "url": "https://waylonwalker.com/thought-783/",
      "title": "💭 DHH: Future of Programming, AI, Ruby on Rails, Productivity \u0026 ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"vagyIcmIGOQ\" title=\"✂️ DHH ai competence\" playlabel=\"Play: ✂️ DHH ai competence\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLetting Ai drive code feels like giving up so much control.  It feels like its leaving so many brain cycles open for other things, yet its not quite good enough to do production level things on its own, so we must watch it, we must review it, yet its code can be some of the worst to review left unattended.  I’m feeling this right now as I’m avoiding writing a bit of js that I could probably do myself.  Some day this is likely to flip, and it will get better and we will spend our brain cycles thinking about architecture, security, marketing, big picture ideas about the problem we are trying to solve, but we are not yet there and as long as we still need to review I find it a much more pleasant workflow to have in a separate window than have it change the whole fucking project for a simple change.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"vagyIcmIGOQ\" title=\"✂️ DHH ai competence\" playlabel=\"Play: ✂️ DHH ai competence\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nLetting Ai drive code feels like giving up so much control.  It feels like its leaving so many brain cycles open for other things, yet its not quite good enough to do production level things on its own, so we must watch it, we must review it, yet its code can be some of the worst to review left unattended.  I'm feeling this right now as I'm avoiding writing a bit of js that I could probably do myself.  Some day this is likely to flip, and it will get better and we will spend our brain cycles thinking about architecture, security, marketing, big picture ideas about the problem we are trying to solve, but we are not yet there and as long as we still need to review I find it a much more pleasant workflow to have in a separate window than have it change the whole fucking project for a simple change.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/clip/UgkxskUJsmJ6E7KVPyPdn1jy1WZQerR-L1Bm",
      "date_published": "2025-08-06T01:22:39Z",
      "date_modified": "2025-08-06T01:22:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-782/",
      "url": "https://waylonwalker.com/thought-782/",
      "title": "💭 A quote from greyduet on r/teachers",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Aug/5/greyduet-on-rteachers/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from greyduet on r/teachers\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI teach HS Science in the south. I can only speak for my district, but a few teacher work days in the wave of enthusiasm I\u0026#39;m seeing for AI tools …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWoof, ai is sucking the soul from everything, being forced onto teachers who don’t want or care about it and are simply sharing ai-slop to their kids without giving it much thought.  remember that it is \u003ca href=\"https://distantprovince.by/posts/its-rude-to-show-ai-output-to-people/\"\u003erude\u003c/a\u003e to share ai-slop with others that you have not vetted, It’s next level to turn this into teaching material for children who are forced into your classroom and have no choice about the matter, you should be ashamed.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Aug/5/greyduet-on-rteachers/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from greyduet on r/teachers\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI teach HS Science in the south. I can only speak for my district, but a few teacher work days in the wave of enthusiasm I\u0026#39;m seeing for AI tools …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWoof, ai is sucking the soul from everything, being forced onto teachers who don't want or care about it and are simply sharing ai-slop to their kids without giving it much thought.  remember that it is [rude](https://distantprovince.by/posts/its-rude-to-show-ai-output-to-people/) to share ai-slop with others that you have not vetted, It's next level to turn this into teaching material for children who are forced into your classroom and have no choice about the matter, you should be ashamed.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Aug/5/greyduet-on-rteachers/#atom-everything",
      "date_published": "2025-08-05T16:01:16Z",
      "date_modified": "2025-08-05T16:01:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-08-05-notes/",
      "url": "https://waylonwalker.com/2025-08-05-notes/",
      "title": "2025-08-05 Notes",
      "content_html": "\u003cp\u003eYesterday I started building out some qrcode tooling for myself starting with\n\u003ca href=\"https://qrcode.waylonwalker.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/qrcode.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/qrcode.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eqrcode.waylonwalker.com\u003c/a\u003e.  This is part of\nmy \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\" data-preview=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\"\u003etinyapps\u003c/a\u003e project.\u003c/p\u003e\n\u003cp\u003eAlso dug into \u003ca href=\"/qr-codes-in-python/\" class=\"wikilink\" data-title=\"qr codes in python\" data-description=\"I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...\" data-date=\"2025-08-05\" data-preview=\"I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...\"\u003eqr codes in python\u003c/a\u003e to try to get some easy and small\nqrcodes that I could add to my blog posts for others who find a post on desktop\nand want to open on mobile.\u003c/p\u003e\n\u003cp\u003eThis is what I am going for with qrcodes on my blog posts.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/29b54d73-d4bc-4505-85f4-1b303f7e7bcc.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-05T14-45-25-598Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/29b54d73-d4bc-4505-85f4-1b303f7e7bcc.png\" alt=\"screenshot-2025-08-05T14-45-25-598Z.png\"/ data-glightbox=\"description: screenshot-2025-08-05T14-45-25-598Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIf you want fancier qrcodes check out \u003ca href=\"https://mydigitalharbor.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mydigitalharbor.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mydigitalharbor.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://mydigitalharbor.com/\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nYesterday I started building out some qrcode tooling for myself starting with\n[qrcode.waylonwalker.com](https://qrcode.waylonwalker.com/).  This is part of\nmy \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\"\u003etinyapps\u003c/a\u003e project.\n\nAlso dug into \u003ca href=\"/qr-codes-in-python/\" class=\"wikilink\" data-title=\"qr codes in python\" data-description=\"I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...\" data-date=\"2025-08-05\"\u003eqr codes in python\u003c/a\u003e to try to get some easy and small\nqrcodes that I could add to my blog posts for others who find a post on desktop\nand want to open on mobile.\n\nThis is what I am going for with qrcodes on my blog posts.\n\n![screenshot-2025-08-05T14-45-25-598Z.png](https://dropper.waylonwalker.com/api/file/29b54d73-d4bc-4505-85f4-1b303f7e7bcc.png)\n\nIf you want fancier qrcodes check out \u003chttps://mydigitalharbor.com/\u003e\n",
      "summary": "Yesterday I started building out some qrcode tooling for myself starting with qrcode.waylonwalker.com. This is part of my tinyapps project.",
      "date_published": "2025-08-05T09:00:57Z",
      "date_modified": "2025-08-05T09:00:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/qr-codes-in-python/",
      "url": "https://waylonwalker.com/qr-codes-in-python/",
      "title": "qr codes in python",
      "content_html": "\u003cp\u003eI have a couple of use cases for simple qr codes in python coming up.  One is\nfor blog posts, the other is for auth into a new server application logged to a\nterminal.  I tried the \u003ca href=\"https://pypi.org/project/qrcode/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003e\u003ccode\u003eqrcode\u003c/code\u003e\u003c/a\u003e library\nand it does not look as nice to me and I found\n\u003ca href=\"https://pypi.org/project/pyqrcode/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pypi.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pypi.org.ico\" class=\"has-avatar  has-avatar-before\"\u003e\u003ccode\u003epyqrcode\u003c/code\u003e\u003c/a\u003e to be quite nice.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eimport pyqrcode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eurl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e pyqrcode.create\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;https://waylonwalker.com/qr-codes-in-python\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eurl.svg\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qr-codes-in-python.svg\u0026#39;\u003c/span\u003e, \u003cspan class=\"nv\"\u003escale\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e8\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eprint\u003cspan class=\"o\"\u003e(\u003c/span\u003eurl.terminal\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"nv\"\u003equiet_zone\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e1\u003cspan class=\"o\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eurl.svg\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qr-codes-in-python.svg\u0026#39;\u003c/span\u003e, \u003cspan class=\"nv\"\u003escale\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e12\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eurl.svg\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qr-codes-in-python.svg\u0026#39;\u003c/span\u003e, \u003cspan class=\"nv\"\u003eomithw\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eTrue\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"c1\"\u003e# width is controlled by the container\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eurl.svg\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qr-codes-in-python.svg\u0026#39;\u003c/span\u003e, \u003cspan class=\"nv\"\u003eomithw\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eTrue, \u003cspan class=\"nv\"\u003emodule_color\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#ffd119\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eurl.svg\u003cspan class=\"o\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;qr-codes-in-python.svg\u0026#39;\u003c/span\u003e, \u003cspan class=\"nv\"\u003eomithw\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eTrue, \u003cspan class=\"nv\"\u003emodule_color\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#ff69b4\u0026#39;\u003c/span\u003e, \u003cspan class=\"nv\"\u003ebackground\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;#2b034c\u0026#39;\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"result\"\u003eresult \u003ca href=\"#result\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is the final svg result.\u003c/p\u003e\n\u003c!--?xml version=\"1.0\" encoding=\"UTF-8\"?--\u003e\n\u003cp\u003e\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 45 45\" class=\"pyqrcode\"\u003e\u003cpath fill=\"#2b034c\" d=\"M0 0h45v45h-45z\"\u003e\u003c/path\u003e\u003cpath stroke=\"#ff69b4\" class=\"pyqrline\" d=\"M4 4.5h7m2 0h1m1 0h3m3 0h3m5 0h2m3 0h7m-37 1h1m5 0h1m1 0h2m3 0h1m3 0h1m2 0h2m2 0h2m2 0h1m1 0h1m5 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m2 0h2m1 0h2m1 0h1m1 0h1m1 0h1m2 0h2m2 0h1m1 0h1m1 0h3m1 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m1 0h1m2 0h1m1 0h2m1 0h1m3 0h6m2 0h1m1 0h3m1 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m1 0h1m1 0h2m1 0h1m2 0h1m1 0h2m1 0h1m2 0h1m1 0h1m1 0h1m1 0h3m1 0h1m-37 1h1m5 0h1m1 0h5m2 0h1m2 0h1m3 0h1m1 0h1m3 0h1m1 0h1m5 0h1m-37 1h7m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h7m-27 1h2m1 0h1m1 0h1m4 0h3m4 0h2m-27 1h1m2 0h5m2 0h2m1 0h4m1 0h5m3 0h2m1 0h5m-36 1h1m7 0h2m2 0h1m1 0h5m4 0h3m1 0h5m1 0h2m1 0h1m-37 1h2m1 0h1m2 0h6m1 0h7m1 0h1m1 0h2m2 0h4m1 0h1m1 0h1m1 0h1m-37 1h1m1 0h1m2 0h1m1 0h1m2 0h3m1 0h1m2 0h2m1 0h1m1 0h2m2 0h1m1 0h1m2 0h3m1 0h2m-34 1h1m2 0h1m2 0h1m1 0h1m3 0h1m1 0h1m1 0h2m3 0h1m2 0h2m1 0h1m2 0h1m1 0h2m-33 1h1m3 0h2m1 0h2m1 0h4m2 0h3m1 0h1m1 0h6m2 0h1m1 0h1m-37 1h1m1 0h1m1 0h6m1 0h1m1 0h1m1 0h2m1 0h4m3 0h1m1 0h1m2 0h1m2 0h2m1 0h1m-35 1h1m1 0h2m1 0h3m1 0h2m1 0h1m1 0h1m1 0h3m3 0h1m1 0h1m1 0h6m1 0h1m-36 1h1m3 0h1m1 0h1m4 0h2m6 0h1m1 0h2m5 0h1m1 0h1m4 0h1m-36 1h4m3 0h3m2 0h1m1 0h3m3 0h1m1 0h1m1 0h5m1 0h2m1 0h2m1 0h1m-35 1h1m2 0h2m1 0h2m2 0h3m8 0h2m2 0h5m1 0h2m1 0h1m-35 1h4m1 0h1m1 0h1m1 0h1m1 0h1m7 0h2m1 0h1m1 0h1m1 0h2m1 0h3m1 0h2m-37 1h3m1 0h3m1 0h1m1 0h2m3 0h1m1 0h3m2 0h1m1 0h1m3 0h1m1 0h1m2 0h1m1 0h1m-36 1h1m1 0h2m1 0h1m4 0h1m2 0h1m1 0h2m1 0h1m2 0h1m1 0h1m1 0h1m1 0h1m1 0h3m1 0h2m1 0h1m-37 1h1m1 0h1m1 0h1m1 0h1m2 0h2m1 0h4m1 0h3m1 0h3m3 0h6m2 0h2m-35 1h2m1 0h1m1 0h2m1 0h2m3 0h3m4 0h1m3 0h2m3 0h1m1 0h1m1 0h2m-37 1h4m1 0h2m4 0h2m1 0h4m1 0h1m4 0h1m5 0h2m1 0h1m1 0h2m-36 1h3m3 0h5m1 0h1m1 0h1m1 0h1m1 0h2m1 0h1m1 0h1m2 0h4m3 0h1m1 0h1m-37 1h4m1 0h2m1 0h3m1 0h1m3 0h3m2 0h1m2 0h1m2 0h1m1 0h3m2 0h1m1 0h1m-33 1h1m6 0h1m2 0h6m2 0h3m1 0h1m2 0h5m2 0h1m-37 1h5m1 0h6m1 0h1m6 0h1m1 0h1m5 0h6m-26 1h1m1 0h1m1 0h1m1 0h1m2 0h2m2 0h1m1 0h2m3 0h1m3 0h2m1 0h2m-37 1h7m1 0h1m1 0h5m2 0h2m1 0h1m1 0h2m2 0h1m1 0h1m1 0h1m1 0h3m1 0h1m-37 1h1m5 0h1m1 0h2m1 0h1m1 0h1m1 0h2m2 0h2m3 0h1m3 0h1m3 0h2m1 0h1m-36 1h1m1 0h3m1 0h1m3 0h1m2 0h1m2 0h2m1 0h3m1 0h2m1 0h7m2 0h2m-37 1h1m1 0h3m1 0h1m4 0h1m2 0h2m1 0h1m1 0h1m1 0h1m6 0h1m3 0h3m1 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m1 0h1m1 0h4m1 0h1m1 0h7m1 0h2m2 0h2m2 0h2m-37 1h1m5 0h1m3 0h4m1 0h2m2 0h2m1 0h3m3 0h1m2 0h1m1 0h1m-34 1h7m4 0h2m1 0h1m3 0h2m4 0h1m3 0h1m1 0h1m2 0h1m2 0h1\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/p\u003e\n\u003cp\u003eHere is what it looks like in the terminal.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c644bd34-b5da-48a3-b6cf-c89efb546114.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-05T13-53-17-368Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c644bd34-b5da-48a3-b6cf-c89efb546114.png\" alt=\"screenshot-2025-08-05T13-53-17-368Z.png\"/ data-glightbox=\"description: screenshot-2025-08-05T13-53-17-368Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIf you want fancier qrcodes check out \u003ca href=\"https://mydigitalharbor.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mydigitalharbor.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mydigitalharbor.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://mydigitalharbor.com/\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI have a couple of use cases for simple qr codes in python coming up.  One is\nfor blog posts, the other is for auth into a new server application logged to a\nterminal.  I tried the [`qrcode`](https://pypi.org/project/qrcode/) library\nand it does not look as nice to me and I found\n[`pyqrcode`](https://pypi.org/project/pyqrcode/) to be quite nice.\n\n``` bash\nimport pyqrcode\nurl = pyqrcode.create('https://waylonwalker.com/qr-codes-in-python')\nurl.svg('qr-codes-in-python.svg', scale=8)\nprint(url.terminal(quiet_zone=1))\nurl.svg('qr-codes-in-python.svg', scale=12)\nurl.svg('qr-codes-in-python.svg', omithw=True) # width is controlled by the container\n\nurl.svg('qr-codes-in-python.svg', omithw=True, module_color='#ffd119')\nurl.svg('qr-codes-in-python.svg', omithw=True, module_color='#ff69b4', background='#2b034c')\n```\n\n## result\n\nHere is the final svg result.\n\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003csvg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 45 45\" class=\"pyqrcode\"\u003e\u003cpath fill=\"#2b034c\" d=\"M0 0h45v45h-45z\"/\u003e\u003cpath stroke=\"#ff69b4\" class=\"pyqrline\" d=\"M4 4.5h7m2 0h1m1 0h3m3 0h3m5 0h2m3 0h7m-37 1h1m5 0h1m1 0h2m3 0h1m3 0h1m2 0h2m2 0h2m2 0h1m1 0h1m5 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m2 0h2m1 0h2m1 0h1m1 0h1m1 0h1m2 0h2m2 0h1m1 0h1m1 0h3m1 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m1 0h1m2 0h1m1 0h2m1 0h1m3 0h6m2 0h1m1 0h3m1 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m1 0h1m1 0h2m1 0h1m2 0h1m1 0h2m1 0h1m2 0h1m1 0h1m1 0h1m1 0h3m1 0h1m-37 1h1m5 0h1m1 0h5m2 0h1m2 0h1m3 0h1m1 0h1m3 0h1m1 0h1m5 0h1m-37 1h7m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h1m1 0h7m-27 1h2m1 0h1m1 0h1m4 0h3m4 0h2m-27 1h1m2 0h5m2 0h2m1 0h4m1 0h5m3 0h2m1 0h5m-36 1h1m7 0h2m2 0h1m1 0h5m4 0h3m1 0h5m1 0h2m1 0h1m-37 1h2m1 0h1m2 0h6m1 0h7m1 0h1m1 0h2m2 0h4m1 0h1m1 0h1m1 0h1m-37 1h1m1 0h1m2 0h1m1 0h1m2 0h3m1 0h1m2 0h2m1 0h1m1 0h2m2 0h1m1 0h1m2 0h3m1 0h2m-34 1h1m2 0h1m2 0h1m1 0h1m3 0h1m1 0h1m1 0h2m3 0h1m2 0h2m1 0h1m2 0h1m1 0h2m-33 1h1m3 0h2m1 0h2m1 0h4m2 0h3m1 0h1m1 0h6m2 0h1m1 0h1m-37 1h1m1 0h1m1 0h6m1 0h1m1 0h1m1 0h2m1 0h4m3 0h1m1 0h1m2 0h1m2 0h2m1 0h1m-35 1h1m1 0h2m1 0h3m1 0h2m1 0h1m1 0h1m1 0h3m3 0h1m1 0h1m1 0h6m1 0h1m-36 1h1m3 0h1m1 0h1m4 0h2m6 0h1m1 0h2m5 0h1m1 0h1m4 0h1m-36 1h4m3 0h3m2 0h1m1 0h3m3 0h1m1 0h1m1 0h5m1 0h2m1 0h2m1 0h1m-35 1h1m2 0h2m1 0h2m2 0h3m8 0h2m2 0h5m1 0h2m1 0h1m-35 1h4m1 0h1m1 0h1m1 0h1m1 0h1m7 0h2m1 0h1m1 0h1m1 0h2m1 0h3m1 0h2m-37 1h3m1 0h3m1 0h1m1 0h2m3 0h1m1 0h3m2 0h1m1 0h1m3 0h1m1 0h1m2 0h1m1 0h1m-36 1h1m1 0h2m1 0h1m4 0h1m2 0h1m1 0h2m1 0h1m2 0h1m1 0h1m1 0h1m1 0h1m1 0h3m1 0h2m1 0h1m-37 1h1m1 0h1m1 0h1m1 0h1m2 0h2m1 0h4m1 0h3m1 0h3m3 0h6m2 0h2m-35 1h2m1 0h1m1 0h2m1 0h2m3 0h3m4 0h1m3 0h2m3 0h1m1 0h1m1 0h2m-37 1h4m1 0h2m4 0h2m1 0h4m1 0h1m4 0h1m5 0h2m1 0h1m1 0h2m-36 1h3m3 0h5m1 0h1m1 0h1m1 0h1m1 0h2m1 0h1m1 0h1m2 0h4m3 0h1m1 0h1m-37 1h4m1 0h2m1 0h3m1 0h1m3 0h3m2 0h1m2 0h1m2 0h1m1 0h3m2 0h1m1 0h1m-33 1h1m6 0h1m2 0h6m2 0h3m1 0h1m2 0h5m2 0h1m-37 1h5m1 0h6m1 0h1m6 0h1m1 0h1m5 0h6m-26 1h1m1 0h1m1 0h1m1 0h1m2 0h2m2 0h1m1 0h2m3 0h1m3 0h2m1 0h2m-37 1h7m1 0h1m1 0h5m2 0h2m1 0h1m1 0h2m2 0h1m1 0h1m1 0h1m1 0h3m1 0h1m-37 1h1m5 0h1m1 0h2m1 0h1m1 0h1m1 0h2m2 0h2m3 0h1m3 0h1m3 0h2m1 0h1m-36 1h1m1 0h3m1 0h1m3 0h1m2 0h1m2 0h2m1 0h3m1 0h2m1 0h7m2 0h2m-37 1h1m1 0h3m1 0h1m4 0h1m2 0h2m1 0h1m1 0h1m1 0h1m6 0h1m3 0h3m1 0h1m-37 1h1m1 0h3m1 0h1m1 0h1m1 0h1m1 0h4m1 0h1m1 0h7m1 0h2m2 0h2m2 0h2m-37 1h1m5 0h1m3 0h4m1 0h2m2 0h2m1 0h3m3 0h1m2 0h1m1 0h1m-34 1h7m4 0h2m1 0h1m3 0h2m4 0h1m3 0h1m1 0h1m2 0h1m2 0h1\"/\u003e\u003c/svg\u003e\n\nHere is what it looks like in the terminal.\n\n![screenshot-2025-08-05T13-53-17-368Z.png](https://dropper.waylonwalker.com/api/file/c644bd34-b5da-48a3-b6cf-c89efb546114.png)\n\nIf you want fancier qrcodes check out \u003chttps://mydigitalharbor.com/\u003e\n",
      "summary": "I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...",
      "date_published": "2025-08-05T08:32:12Z",
      "date_modified": "2025-08-05T08:32:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-780/",
      "url": "https://waylonwalker.com/thought-780/",
      "title": "💭 Colors • Pico CSS",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://picocss.com/docs/colors\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://picocss.com/opengraph.png\" alt=\"Colors • Pico CSS — Pico comes with 380 manually crafted colors to help you personalize your brand design system.\" loading=\"lazy\"/ data-glightbox=\"description: Colors • Pico CSS — Pico comes with 380 manually crafted colors to help you personalize your brand design system.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eColors • Pico CSS\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePico comes with 380 manually crafted colors to help you personalize your brand design system.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePico CSS · picocss.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eA great alternative to tailwind colors that has everything defined in one colors file for only 0.3kb.  it feels well worth the weight if you are trying to skip a build step or avoid npm/node.  It has even more colors than tailwind.  I appreciate that there is a grey palette that is fully desaturated.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://picocss.com/docs/colors\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://picocss.com/opengraph.png\" alt=\"Colors • Pico CSS — Pico comes with 380 manually crafted colors to help you personalize your brand design system.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eColors • Pico CSS\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePico comes with 380 manually crafted colors to help you personalize your brand design system.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePico CSS \u0026middot; picocss.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nA great alternative to tailwind colors that has everything defined in one colors file for only 0.3kb.  it feels well worth the weight if you are trying to skip a build step or avoid npm/node.  It has even more colors than tailwind.  I appreciate that there is a grey palette that is fully desaturated.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://picocss.com/docs/colors",
      "date_published": "2025-08-04T14:58:33Z",
      "date_modified": "2025-08-04T14:58:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-779/",
      "url": "https://waylonwalker.com/thought-779/",
      "title": "💭 rushter/selectolax: Python binding to Modest and Lexbor engine...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/rushter/selectolax\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/9199729e95e27b97c02ce2cc54672d3afe4067293fa8dfd35a444bb8cfa1bbca/rushter/selectolax\" alt=\"GitHub - rushter/selectolax: Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. — Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. - rushter/selectolax\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - rushter/selectolax: Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. — Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. - rushter/selectolax\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - rushter/selectolax: Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePython binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. - rushter/selectolax\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSelectolax you have my attention!  I will be giving this a try for markata which often suffers from slow beautifulsoup.  It appears to have everything I need for my simple use cases.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b5d8930f-59e0-4947-9500-717f66ce33dc.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-08-04T13-46-04-068Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b5d8930f-59e0-4947-9500-717f66ce33dc.png\" alt=\"screenshot-2025-08-04T13-46-04-068Z.png\"/ data-glightbox=\"description: screenshot-2025-08-04T13-46-04-068Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/rushter/selectolax\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/9199729e95e27b97c02ce2cc54672d3afe4067293fa8dfd35a444bb8cfa1bbca/rushter/selectolax\" alt=\"GitHub - rushter/selectolax: Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. — Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. - rushter/selectolax\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - rushter/selectolax: Python binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePython binding to Modest and Lexbor engines. Fast HTML5 parser with CSS selectors for Python. - rushter/selectolax\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSelectolax you have my attention!  I will be giving this a try for markata which often suffers from slow beautifulsoup.  It appears to have everything I need for my simple use cases.\n\n![screenshot-2025-08-04T13-46-04-068Z.png](https://dropper.waylonwalker.com/api/file/b5d8930f-59e0-4947-9500-717f66ce33dc.png)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/rushter/selectolax",
      "date_published": "2025-08-04T13:52:15Z",
      "date_modified": "2025-08-04T13:52:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "python",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/rushter-selectolax/",
      "url": "https://waylonwalker.com/rushter-selectolax/",
      "title": "⭐ rushter selectolax",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/rushter/selectolax\" 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\"\u003eselectolax\u003c/a\u003e, created by \u003ca href=\"https://github.com/rushter\" 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\"\u003erushter\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003ePython binding to Modest and Lexbor engines (fast HTML5 parser with CSS selectors).\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [selectolax](https://github.com/rushter/selectolax), created by [rushter](https://github.com/rushter).\n\nPython binding to Modest and Lexbor engines (fast HTML5 parser with CSS selectors).\n",
      "summary": "If you're into interesting projects, don't miss out on selectolax, created by rushter.",
      "date_published": "2025-08-04T13:45:54Z",
      "date_modified": "2025-08-04T13:45:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/rqlite-rqlite/",
      "url": "https://waylonwalker.com/rqlite-rqlite/",
      "title": "⭐ rqlite rqlite",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/rqlite\" 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\"\u003erqlite’s\u003c/a\u003e project \u003ca href=\"https://github.com/rqlite/rqlite\" 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\"\u003erqlite\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe lightweight, user-friendly, distributed relational database built on SQLite.\u003c/p\u003e\n",
      "content_text": "\nI like [rqlite's](https://github.com/rqlite) project [rqlite](https://github.com/rqlite/rqlite).\n\nThe lightweight, user-friendly, distributed relational database built on SQLite.\n",
      "summary": "I like rqlite's project rqlite.",
      "date_published": "2025-08-04T01:17:07Z",
      "date_modified": "2025-08-04T01:17:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-776/",
      "url": "https://waylonwalker.com/thought-776/",
      "title": "💭 How To Build The Tallest Building In Town",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://garyvaynerchuk.com/build-the-tallest-building-in-town/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://garyvaynerchuk.com/wp-content/uploads/2020/06/Artboard-1.jpg\" alt=\"How To Build The Tallest Building In Town — There are two ways you can build the tallest building in town. Once you understand this, things get really good.\" loading=\"lazy\"/ data-glightbox=\"description: How To Build The Tallest Building In Town — There are two ways you can build the tallest building in town. Once you understand this, things get really good.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHow To Build The Tallest Building In Town\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThere are two ways you can build the tallest building in town. Once you understand this, things get really good.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGary Vaynerchuk · garyvaynerchuk.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eHave some positivity!  “Just Build the Tallest Fucking Building” is one of my favorite Gary Vee quotes.  Build good community, bring others up, and stop tearing everyone down, listen to the vid.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://garyvaynerchuk.com/build-the-tallest-building-in-town/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://garyvaynerchuk.com/wp-content/uploads/2020/06/Artboard-1.jpg\" alt=\"How To Build The Tallest Building In Town — There are two ways you can build the tallest building in town. Once you understand this, things get really good.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHow To Build The Tallest Building In Town\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThere are two ways you can build the tallest building in town. Once you understand this, things get really good.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGary Vaynerchuk \u0026middot; garyvaynerchuk.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nHave some positivity!  \"Just Build the Tallest Fucking Building\" is one of my favorite Gary Vee quotes.  Build good community, bring others up, and stop tearing everyone down, listen to the vid.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://garyvaynerchuk.com/build-the-tallest-building-in-town/",
      "date_published": "2025-08-02T15:04:49Z",
      "date_modified": "2025-08-02T15:04:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-775/",
      "url": "https://waylonwalker.com/thought-775/",
      "title": "💭 Meet Gor | I kind of hate Agentic IDEs for the sake of product...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.meetgor.com/thoughts/i-kind-of-hate-agentic-ides-for-the-sake-of-productivity/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.meetgor.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.meetgor.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emeetgor.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYes, I can review the code and make changes, but who in the world loves reviewing code? Do you love reviewing peers’ PRs? really?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI’m with MeetGor here 100%. reviewing the nuance, not being as involved with the process of creating the architecture design, not solving the problems that arise in development make it hard to effectively review and not turn into LGTM man.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.meetgor.com/thoughts/i-kind-of-hate-agentic-ides-for-the-sake-of-productivity/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emeetgor.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Yes, I can review the code and make changes, but who in the world loves reviewing code? Do you love reviewing peers' PRs? really?\n\nI'm with MeetGor here 100%. reviewing the nuance, not being as involved with the process of creating the architecture design, not solving the problems that arise in development make it hard to effectively review and not turn into LGTM man.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.meetgor.com/thoughts/i-kind-of-hate-agentic-ides-for-the-sake-of-productivity/",
      "date_published": "2025-08-02T15:00:38Z",
      "date_modified": "2025-08-02T15:00:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agentic",
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/dolphin-remote-storage-previews/",
      "url": "https://waylonwalker.com/dolphin-remote-storage-previews/",
      "title": "Dolphin Remote Storage Previews",
      "content_html": "\u003cp\u003eI’ve got a few samba shares going in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e, and I’m struggling finding a\ngreat app to scroll through vacation photos with my wife.  I want something\nintuitive, non intimidating, and just works.  Turns out that the default file\nbrowser application for hyprland works great, but you need to enable previews\nfor remote storage for it to work for my use case here.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3940267e-3727-4e7b-8f7f-aebb49d79326.png\" class=\"glightbox-link\" aria-label=\"3940267e-3727-4e7b-8f7f-aebb49d79326.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3940267e-3727-4e7b-8f7f-aebb49d79326.png\" alt=\"3940267e-3727-4e7b-8f7f-aebb49d79326.png\"/ data-glightbox=\"description: 3940267e-3727-4e7b-8f7f-aebb49d79326.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI've got a few samba shares going in my homelab, and I'm struggling finding a\ngreat app to scroll through vacation photos with my wife.  I want something\nintuitive, non intimidating, and just works.  Turns out that the default file\nbrowser application for hyprland works great, but you need to enable previews\nfor remote storage for it to work for my use case here.\n\n![3940267e-3727-4e7b-8f7f-aebb49d79326.png](https://dropper.waylonwalker.com/api/file/3940267e-3727-4e7b-8f7f-aebb49d79326.png)\n",
      "summary": "I've got a few samba shares going in my homelab, and I'm struggling finding a great app to scroll through vacation photos with my wife. I want something...",
      "date_published": "2025-08-02T14:58:09Z",
      "date_modified": "2025-08-02T14:58:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "hyprland",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-774/",
      "url": "https://waylonwalker.com/thought-774/",
      "title": "💭 Meet Gor | Just Fucking use kubernetes",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.meetgor.com/thoughts/just-fucking-use-kubernetes/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.meetgor.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.meetgor.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emeetgor.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSometimes, all you need is a mindset shift, a blocker in your mind that holds you back from doing certain things. And for me, I have consumed enough tutorials and posts about Kubernetes, that I need to put to use and create. I have been stuck in the learning cycle, lets push to prod with kubernetes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis hurts.  I know others with this learning style that need to see the full picture before actually doing something with new tech.  The way I first got into kubernetes I was looking for the easy route and somehow k8s came up several times as a suggested route \u003ca href=\"/looking-for-a-heroku-replacement/\" class=\"wikilink\" data-title=\"Looking for a Heroku replacement, What I found was shocking!\" data-description=\"Your browser does not support the audio element.\" data-date=\"2023-12-04\" data-preview=\"Your browser does not support the audio element.\"\u003eLooking for a Heroku replacement, What I found was shocking!\u003c/a\u003e, So I dove in head first with \u003ca href=\"https://k3s.io/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/k3s.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/k3s.io.ico\" class=\"has-avatar  has-avatar-before\"\u003ek3s\u003c/a\u003e and \u003ca href=\"https://kompose.io/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/kompose.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/kompose.io.png\" class=\"has-avatar  has-avatar-before\"\u003ekompose\u003c/a\u003e.  What I found was that it was not all that hard once you start to see how the pieces fit together, no amount of reading tutorials would have gotten me there.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDoes anyone care if you use simple yet fragile bash scripts or heavy weight Kubernetes cluster for just clicking buttons and creating and updating rows in a database? No!\u003c/p\u003e\n\u003cp\u003eYou know what, let’s fucking use Kubernetes.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eLet’s Gooo.  Use what is right for you and stop parroting kubernets is hard, heavy, for big companies, maybe actually try it first.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.meetgor.com/thoughts/just-fucking-use-kubernetes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emeetgor.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Sometimes, all you need is a mindset shift, a blocker in your mind that holds you back from doing certain things. And for me, I have consumed enough tutorials and posts about Kubernetes, that I need to put to use and create. I have been stuck in the learning cycle, lets push to prod with kubernetes.\n\nThis hurts.  I know others with this learning style that need to see the full picture before actually doing something with new tech.  The way I first got into kubernetes I was looking for the easy route and somehow k8s came up several times as a suggested route \u003ca href=\"/looking-for-a-heroku-replacement/\" class=\"wikilink\" data-title=\"Looking for a Heroku replacement, What I found was shocking!\" data-description=\"Your browser does not support the audio element.\" data-date=\"2023-12-04\"\u003eLooking for a Heroku replacement, What I found was shocking!\u003c/a\u003e, So I dove in head first with [k3s](https://k3s.io/) and [kompose](https://kompose.io/).  What I found was that it was not all that hard once you start to see how the pieces fit together, no amount of reading tutorials would have gotten me there.\n\n\u003e Does anyone care if you use simple yet fragile bash scripts or heavy weight Kubernetes cluster for just clicking buttons and creating and updating rows in a database? No!\n\u003e \n\u003e You know what, let's fucking use Kubernetes.\n\nLet's Gooo.  Use what is right for you and stop parroting kubernets is hard, heavy, for big companies, maybe actually try it first.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.meetgor.com/thoughts/just-fucking-use-kubernetes/",
      "date_published": "2025-08-02T14:53:45Z",
      "date_modified": "2025-08-02T14:53:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-773/",
      "url": "https://waylonwalker.com/thought-773/",
      "title": "💭 Quoting Meet Gor | Kubernetes isn't for you",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.meetgor.com/thoughts/kubernetes-isn-t-for-you/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.meetgor.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.meetgor.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emeetgor.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf you want to use it for the purpose of learning it, please do use it.\u003c/p\u003e\n\u003cp\u003eKubernetes as usual is a tool like others, you can’t use one tool everywhere. Where bash scripts work, they just work, where they don’t they fall apart too, kubernetes works like a charm.\u003c/p\u003e\n\u003cp\u003eUse your grug brains a little and choose wisely! In the end, who the hell cares if you use kubernetes or bash scripts to scale if your users are happy?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eWell Said!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.meetgor.com/thoughts/kubernetes-isn-t-for-you/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emeetgor.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e If you want to use it for the purpose of learning it, please do use it.\n\u003e \n\u003e Kubernetes as usual is a tool like others, you can't use one tool everywhere. Where bash scripts work, they just work, where they don't they fall apart too, kubernetes works like a charm.\n\u003e \n\u003e Use your grug brains a little and choose wisely! In the end, who the hell cares if you use kubernetes or bash scripts to scale if your users are happy?\n\nWell Said!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.meetgor.com/thoughts/kubernetes-isn-t-for-you/",
      "date_published": "2025-08-02T14:44:18Z",
      "date_modified": "2025-08-02T14:44:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-772/",
      "url": "https://waylonwalker.com/thought-772/",
      "title": "💭 Kubernetes Isn't for You",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://sliplane.io/blog/kubernetes-isnt-for-you\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://sliplane-frontend.sliplane.app/images/blog/kubernetes-isnt-for-you/kubernetes-isnt-for-you.webp\" alt=\"Kubernetes Isn — Kubernetes isn\" loading=\"lazy\"/ data-glightbox=\"description: Kubernetes Isn — Kubernetes isn\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKubernetes Isn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKubernetes isn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esliplane.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis post feels like it was written by someone who has never tried kubernetes, someone who reads twitter, listens to t3.gg and thePrimeagen (who cant even container let alone kubernetes).  If you cant run linux, use bash, build your own docker images, run docker comfortably.  If infra is not your thing kubernetes is probably not for you.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eKubernetes Was Built for Google\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eJust like how react was built for facebook to solve facebook problems with many teams contributing effectively to the same interactive interfaces.  Turns out that react is actually a pretty good product if you have a highly interactive page, and if this is your bread and butter, you can make overly heavy static sites with too much build very effectively.  It works and runs much of the internet now.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWe are getting serious. We need serious tools.\nBig companies use Kubernetes. We should too.\nIt feels more professional. It sounds like we know what we are doing.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIf anyone uses these reasons to pitch kubernetes to me they don’t belong in a position to make any sort of decision.  The first one could be a heading with maybe something under it.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBut Kubernetes should not be your first infrastructure step. It should be a response to real pain, not an emotional milestone\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eAs with anything, \u003cstrong\u003eit depends\u003c/strong\u003e!  Keeping with the react example, if you have a team with these skills its a solid choice, maybe its overkill, but you got this skills to start here then go for it.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eIf you have never given something a real shot then don’t be writing articles shitting on the tech.  Actually if you do not have a deep expertise in it you probably should not be writing articles shitting on other tech.  If you are the CEO of an alternative, you definitely should not be writing articles shitting on your competition.  \u003ca href=\"https://garyvaynerchuk.com/build-the-tallest-building-in-town/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/garyvaynerchuk.com.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/garyvaynerchuk.com.jpg\" class=\"has-avatar  has-avatar-before\"\u003e just build the biggest fucking building in town \u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you are kube curios give kind and kompose a try, you will be surprised at how quickly you can get something up and running in kubernetes.  You might be surprised at how easy it is to remotely manage, add gitops workflows with \u003ca href=\"https://argoproj.github.io/cd/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/argoproj.github.io.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/argoproj.github.io.png\" class=\"has-avatar  has-avatar-before\"\u003eargocd\u003c/a\u003e.  Give \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 a try and you can see all of your nodes, services, ingress, pvcs, EVERYTHING you have deployed and its status in one easy to use TUI.\u003c/p\u003e\n\u003cp\u003eI avoided kubernetes for a long time because articles like this told me to and I never gave it a fair try.\u003c/p\u003e\n\u003cp\u003eCheck out \u003ca href=\"/just-fucking-use-kubernetes/\" class=\"wikilink\" data-title=\"just fucking use kubernetes\" data-description=\"You want to run containers?\" data-date=\"2025-07-01\" data-preview=\"You want to run containers?\"\u003ejust fucking use kubernetes\u003c/a\u003e for a satirical opposite take.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://sliplane.io/blog/kubernetes-isnt-for-you\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://sliplane-frontend.sliplane.app/images/blog/kubernetes-isnt-for-you/kubernetes-isnt-for-you.webp\" alt=\"Kubernetes Isn — Kubernetes isn\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKubernetes Isn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKubernetes isn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esliplane.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis post feels like it was written by someone who has never tried kubernetes, someone who reads twitter, listens to t3.gg and thePrimeagen (who cant even container let alone kubernetes).  If you cant run linux, use bash, build your own docker images, run docker comfortably.  If infra is not your thing kubernetes is probably not for you.\n\n\u003e Kubernetes Was Built for Google\n\nJust like how react was built for facebook to solve facebook problems with many teams contributing effectively to the same interactive interfaces.  Turns out that react is actually a pretty good product if you have a highly interactive page, and if this is your bread and butter, you can make overly heavy static sites with too much build very effectively.  It works and runs much of the internet now.\n\n\u003e We are getting serious. We need serious tools.\n\u003e Big companies use Kubernetes. We should too.\n\u003e It feels more professional. It sounds like we know what we are doing.\n\nIf anyone uses these reasons to pitch kubernetes to me they don't belong in a position to make any sort of decision.  The first one could be a heading with maybe something under it.\n\n\u003e But Kubernetes should not be your first infrastructure step. It should be a response to real pain, not an emotional milestone\n\nAs with anything, **it depends**!  Keeping with the react example, if you have a team with these skills its a solid choice, maybe its overkill, but you got this skills to start here then go for it.\n\n---\n\nIf you have never given something a real shot then don't be writing articles shitting on the tech.  Actually if you do not have a deep expertise in it you probably should not be writing articles shitting on other tech.  If you are the CEO of an alternative, you definitely should not be writing articles shitting on your competition.  [ just build the biggest fucking building in town ](https://garyvaynerchuk.com/build-the-tallest-building-in-town/).\n\nIf you are kube curios give kind and kompose a try, you will be surprised at how quickly you can get something up and running in kubernetes.  You might be surprised at how easy it is to remotely manage, add gitops workflows with [argocd](https://argoproj.github.io/cd/).  Give [k9s](https://k9scli.io/) a try and you can see all of your nodes, services, ingress, pvcs, EVERYTHING you have deployed and its status in one easy to use TUI.\n\nI avoided kubernetes for a long time because articles like this told me to and I never gave it a fair try.\n\nCheck out \u003ca href=\"/just-fucking-use-kubernetes/\" class=\"wikilink\" data-title=\"just fucking use kubernetes\" data-description=\"You want to run containers?\" data-date=\"2025-07-01\"\u003ejust fucking use kubernetes\u003c/a\u003e for a satirical opposite take.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://sliplane.io/blog/kubernetes-isnt-for-you",
      "date_published": "2025-08-02T14:40:42Z",
      "date_modified": "2025-08-02T14:40:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-771/",
      "url": "https://waylonwalker.com/thought-771/",
      "title": "💭 csi-driver-smb/deploy/example/smb-provisioner at master · kube...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/kubernetes-csi/csi-driver-smb/tree/master/deploy/example/smb-provisioner\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/8c71a875477c9cc01a32b755332f230dc8f55d2b13d4f1021ca730fc73310719/kubernetes-csi/csi-driver-smb\" alt=\"csi-driver-smb/deploy/example/smb-provisioner at master · kubernetes-csi/csi-driver-smb — This driver allows Kubernetes to access SMB Server on both Linux and Windows nodes. - kubernetes-csi/csi-driver-smb\" loading=\"lazy\"/ data-glightbox=\"description: csi-driver-smb/deploy/example/smb-provisioner at master · kubernetes-csi/csi-driver-smb — This driver allows Kubernetes to access SMB Server on both Linux and Windows nodes. - kubernetes-csi/csi-driver-smb\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecsi-driver-smb/deploy/example/smb-provisioner at master · kubernetes-csi/csi-driver-smb\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis driver allows Kubernetes to access SMB Server on both Linux and Windows nodes. - kubernetes-csi/csi-driver-smb\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat guide to setting up a samba server right in kubernetes.  I tried it out after too long of playing with trying to get connected to a samba share on ucore, no idea what was wrong, but this just works, and will live in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e no matter what distro I’m on, no playbook required to set it up, just good ol k8s manifest.  TBH I cheated and haven’t set up the secrets yet, so its not quite in argocd or in my github repo, but POC is there and it works as advertised without issue.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/kubernetes-csi/csi-driver-smb/tree/master/deploy/example/smb-provisioner\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/8c71a875477c9cc01a32b755332f230dc8f55d2b13d4f1021ca730fc73310719/kubernetes-csi/csi-driver-smb\" alt=\"csi-driver-smb/deploy/example/smb-provisioner at master · kubernetes-csi/csi-driver-smb — This driver allows Kubernetes to access SMB Server on both Linux and Windows nodes. - kubernetes-csi/csi-driver-smb\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecsi-driver-smb/deploy/example/smb-provisioner at master · kubernetes-csi/csi-driver-smb\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThis driver allows Kubernetes to access SMB Server on both Linux and Windows nodes. - kubernetes-csi/csi-driver-smb\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGreat guide to setting up a samba server right in kubernetes.  I tried it out after too long of playing with trying to get connected to a samba share on ucore, no idea what was wrong, but this just works, and will live in my homelab no matter what distro I'm on, no playbook required to set it up, just good ol k8s manifest.  TBH I cheated and haven't set up the secrets yet, so its not quite in argocd or in my github repo, but POC is there and it works as advertised without issue.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/kubernetes-csi/csi-driver-smb/tree/master/deploy/example/smb-provisioner",
      "date_published": "2025-08-01T19:50:39Z",
      "date_modified": "2025-08-01T19:50:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-769/",
      "url": "https://waylonwalker.com/thought-769/",
      "title": "💭 DHH on X: \"You have all the time you need, you're just spendin...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1950462181331349688\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThe message so many of us need to hear, stop scrolling and start creating.  I’m not sure that I have a heavy issue with this, I barely scroll the socials anymore, I have my own rss reader curated with people that I enjoy consuming from.  YT is often done as a family activity (with my wife) or listening while doing something like dishes.  But I think I’ve been on the other side of this for awhile.  There’s something that ticks my brain by twiddling with linux nonsensically or \u003ccode\u003epip install thing-i-heard-about-today\u003c/code\u003e and try it.  I’m not imune  though, I often fill gaps in the day with nonsense short content, but try to avoid the short trap.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1950462181331349688\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe message so many of us need to hear, stop scrolling and start creating.  I'm not sure that I have a heavy issue with this, I barely scroll the socials anymore, I have my own rss reader curated with people that I enjoy consuming from.  YT is often done as a family activity (with my wife) or listening while doing something like dishes.  But I think I've been on the other side of this for awhile.  There's something that ticks my brain by twiddling with linux nonsensically or `pip install thing-i-heard-about-today` and try it.  I'm not imune  though, I often fill gaps in the day with nonsense short content, but try to avoid the short trap.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/dhh/status/1950462181331349688",
      "date_published": "2025-07-31T00:56:40Z",
      "date_modified": "2025-07-31T00:56:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-768/",
      "url": "https://waylonwalker.com/thought-768/",
      "title": "💭 Rewriting alt-tab to save 0.1s - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"RG69PCAslA0\" title=\"Rewriting Alt-Tab To Save 0.01s | Prime Reacts\" playlabel=\"Play: Rewriting Alt-Tab To Save 0.01s | Prime Reacts\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eHow many times in one video can Prime say dude just use arch, dude arch would be way easier, dude you know how hard you are making this on yourself.\u003c/p\u003e\n\u003cp\u003eI do not envy those who desire full size configurability but stuck with the opinions of GatesJobs.  Windows and Mac are so rigid, that it makes it impossible to do any level of customizability that I would want to do for productivity.\u003c/p\u003e\n\u003cp\u003eUnless you \u003cstrong\u003eMust\u003c/strong\u003e work on win/mack for some reason of work, you make something for one of them, you use Adobe, or you play competitive online multiplayer with easy anticheat there is a distro for you.  The number of things that you need a win/mack for is greatly shrinking, you don’t have to submit yourself to the pain of Gates that this guy has done.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"RG69PCAslA0\" title=\"Rewriting Alt-Tab To Save 0.01s | Prime Reacts\" playlabel=\"Play: Rewriting Alt-Tab To Save 0.01s | Prime Reacts\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nHow many times in one video can Prime say dude just use arch, dude arch would be way easier, dude you know how hard you are making this on yourself.\n\nI do not envy those who desire full size configurability but stuck with the opinions of GatesJobs.  Windows and Mac are so rigid, that it makes it impossible to do any level of customizability that I would want to do for productivity.\n\nUnless you **Must** work on win/mack for some reason of work, you make something for one of them, you use Adobe, or you play competitive online multiplayer with easy anticheat there is a distro for you.  The number of things that you need a win/mack for is greatly shrinking, you don't have to submit yourself to the pain of Gates that this guy has done.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/RG69PCAslA0?si=ZogGDP9TOI6gDcMM",
      "date_published": "2025-07-28T12:46:30Z",
      "date_modified": "2025-07-28T12:46:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought",
        "windows"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/homelab-update-jul-2025/",
      "url": "https://waylonwalker.com/shots/homelab-update-jul-2025/",
      "title": "Homelab Update Jul 2025",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/32ea8118-9ec5-4865-b3b4-8ccd14f23268.jpg\" class=\"glightbox-link\" aria-label=\"Homelab update Jul 2025\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/32ea8118-9ec5-4865-b3b4-8ccd14f23268.jpg\" alt=\"Homelab update Jul 2025\"/ data-glightbox=\"description: Homelab update Jul 2025\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eBasement shelf with 3 computers, a network switch, an uninterubptable power supply, one monitor underneath, and a wifi access point to the right.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Homelab update Jul 2025](https://dropper.waylonwalker.com/api/file/32ea8118-9ec5-4865-b3b4-8ccd14f23268.jpg)\n\n\u003e Basement shelf with 3 computers, a network switch, an uninterubptable power supply, one monitor underneath, and a wifi access point to the right.\n",
      "summary": "Basement shelf with 3 computers, a network switch, an uninterubptable power supply, one monitor underneath, and a wifi access point to the right.",
      "image": "https://dropper.waylonwalker.com/api/file/32ea8118-9ec5-4865-b3b4-8ccd14f23268.jpg",
      "date_published": "2025-07-28T08:19:37Z",
      "date_modified": "2025-07-28T08:19:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-767/",
      "url": "https://waylonwalker.com/thought-767/",
      "title": "💭 Copyparty - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"15_-hgsX2V0\" title=\"introducing copyparty, the FOSS file server\" playlabel=\"Play: introducing copyparty, the FOSS file server\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eCopyparty looks like a feature full \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e file server, putting this into my check out later when I get  back to my desk.  Impressive number of features I didn’t even know were a thing all from one .py file.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"15_-hgsX2V0\" title=\"introducing copyparty, the FOSS file server\" playlabel=\"Play: introducing copyparty, the FOSS file server\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nCopyparty looks like a feature full self hosted file server, putting this into my check out later when I get  back to my desk.  Impressive number of features I didn't even know were a thing all from one .py file.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://youtu.be/15_mX",
      "date_published": "2025-07-27T17:23:57Z",
      "date_modified": "2025-07-27T17:23:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "later",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-27-notes/",
      "url": "https://waylonwalker.com/2025-07-27-notes/",
      "title": "2025-07-27 Notes",
      "content_html": "\u003cp\u003eToday Wyatt and I conquered cathulu in Cat quest III.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.mp4\" class=\"glightbox-link\" aria-label=\"cathulu.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.mp4\" type=\"video/mp4\"\u003ecathulu.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eWhich then lead us to finish Mama Milk’s quest line.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.mp4\" class=\"glightbox-link\" aria-label=\"mama-milk.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.mp4\" type=\"video/mp4\"\u003emama-milk.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003ch2 id=\"archlinux-btw-devtainer\"\u003earchlinux BTW devtainer \u003ca href=\"#archlinux-btw-devtainer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMade some progress on moving my devtainer back from ubuntu to arch, it’s\nsomewhat pertinent because a few of the things I use are now outdated and I\njust want to use a package manager and not have to build things from scratch.\u003c/p\u003e\n\u003ch2 id=\"kubernetes-development-environment\"\u003eKubernetes Development Environment \u003ca href=\"#kubernetes-development-environment\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI also setup a dev environment in kubernetes, already using this new arch\nimage, its great so far, writing this post from it.\u003c/p\u003e\n\u003cp\u003eAs a challenge how much of my workflow could be done from kubernetes, docker\nbuild, and run would be hard, but I bet I could come up with something.  The\nclipboard part of my workflow would need a major change, especially for\ngrabbing previous terminal outputs.\u003c/p\u003e\n",
      "content_text": "\nToday Wyatt and I conquered cathulu in Cat quest III.\n\n![cathulu.mp4](https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.mp4)\n\nWhich then lead us to finish Mama Milk's quest line.\n\n![mama-milk.mp4](https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.mp4)\n\n---\n\n## archlinux BTW devtainer\n\nMade some progress on moving my devtainer back from ubuntu to arch, it's\nsomewhat pertinent because a few of the things I use are now outdated and I\njust want to use a package manager and not have to build things from scratch.\n\n## Kubernetes Development Environment\n\nI also setup a dev environment in kubernetes, already using this new arch\nimage, its great so far, writing this post from it.\n\nAs a challenge how much of my workflow could be done from kubernetes, docker\nbuild, and run would be hard, but I bet I could come up with something.  The\nclipboard part of my workflow would need a major change, especially for\ngrabbing previous terminal outputs.\n\n\n",
      "summary": "Today Wyatt and I conquered cathulu in Cat quest III.",
      "date_published": "2025-07-27T01:25:33Z",
      "date_modified": "2025-07-27T01:25:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-766/",
      "url": "https://waylonwalker.com/thought-766/",
      "title": "💭 What the EDC Community Gets Wrong About Pry Bars - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"hT_pzOURr5c\" title=\"What the EDC Community Gets Wrong About Pry Bars\" playlabel=\"Play: What the EDC Community Gets Wrong About Pry Bars\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBen sold me on the mini pocket pry here.  It’s funny how so many \u003cem\u003eminimalist\u003c/em\u003e tools become over the top titanium damascus with wild patterns and designs. they look amazing, but are they worth the insane price for simple things?  I like my edc to be things I don’t worry about breaking, loosing, or giving away.  Fancy ass prybars for $200+ gives me all of those negative feelings I don’t want on my edc.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"hT_pzOURr5c\" title=\"What the EDC Community Gets Wrong About Pry Bars\" playlabel=\"Play: What the EDC Community Gets Wrong About Pry Bars\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nBen sold me on the mini pocket pry here.  It's funny how so many _minimalist_ tools become over the top titanium damascus with wild patterns and designs. they look amazing, but are they worth the insane price for simple things?  I like my edc to be things I don't worry about breaking, loosing, or giving away.  Fancy ass prybars for $200+ gives me all of those negative feelings I don't want on my edc.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=hT_pzOURr5c",
      "date_published": "2025-07-26T20:27:28Z",
      "date_modified": "2025-07-26T20:27:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "edc",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-765/",
      "url": "https://waylonwalker.com/thought-765/",
      "title": "💭 How I Use Computers Now - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"x-sW4sKZocA\" title=\"How I Use Computers Now\" playlabel=\"Play: How I Use Computers Now\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBen is always good for a banger of a video, this images app is something that i really want in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e, he did some great polish here!  The idea of building vibe coded applications for your own personal use with all of your own personal opinions and workflows is something that has been an appealing part of ai,  I’ve definitely tossed a few apps in my homelab that I use occasionally and they do what I ask of them pretty accurately.\u003c/p\u003e\n\u003cp\u003eThis feels great to use, but also seems to kill any startup idea I have, as most of them feel like they could be vibe coded out by someone with a bit of skill and they just host their own.  Maybe this is a good thing, maybe we are moving into an era of more people owning their own app they use for themself, maybe i need a security related startup?\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"x-sW4sKZocA\" title=\"How I Use Computers Now\" playlabel=\"Play: How I Use Computers Now\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nBen is always good for a banger of a video, this images app is something that i really want in my homelab, he did some great polish here!  The idea of building vibe coded applications for your own personal use with all of your own personal opinions and workflows is something that has been an appealing part of ai,  I've definitely tossed a few apps in my homelab that I use occasionally and they do what I ask of them pretty accurately.\n\nThis feels great to use, but also seems to kill any startup idea I have, as most of them feel like they could be vibe coded out by someone with a bit of skill and they just host their own.  Maybe this is a good thing, maybe we are moving into an era of more people owning their own app they use for themself, maybe i need a security related startup?\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=x-sW4sKZocA",
      "date_published": "2025-07-26T14:41:22Z",
      "date_modified": "2025-07-26T14:41:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/blender-donut-tutorial-2025/",
      "url": "https://waylonwalker.com/blender-donut-tutorial-2025/",
      "title": "blender donut tutorial 2025",
      "content_html": "\u003ch2 id=\"first-launch\"\u003eFirst Launch \u003ca href=\"#first-launch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ecd7349a-b04c-4496-8b34-3f2c82bdd790.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-25T13-29-06-029Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ecd7349a-b04c-4496-8b34-3f2c82bdd790.png\" alt=\"screenshot-2025-07-25T13-29-06-029Z.png\"/ data-glightbox=\"description: screenshot-2025-07-25T13-29-06-029Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"my-setup\"\u003emy setup \u003ca href=\"#my-setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0baedcf5-9b6a-4ee3-b18f-76e695e00a8c.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-25T13-30-22-340Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0baedcf5-9b6a-4ee3-b18f-76e695e00a8c.png\" alt=\"screenshot-2025-07-25T13-30-22-340Z.png\"/ data-glightbox=\"description: screenshot-2025-07-25T13-30-22-340Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"add\"\u003eAdd \u003ca href=\"#add\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eshift A\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"bump-resolution-scale\"\u003ebump resolution scale \u003ca href=\"#bump-resolution-scale\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eedit -\u0026gt; preferences -\u0026gt; interface -\u0026gt; resolution scale 1.25\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d2c9fc7c-c689-4f6f-b2db-96bd8bb59ab3.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-25T13-35-20-580Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d2c9fc7c-c689-4f6f-b2db-96bd8bb59ab3.png\" alt=\"screenshot-2025-07-25T13-35-20-580Z.png\"/ data-glightbox=\"description: screenshot-2025-07-25T13-35-20-580Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"orbit-without-middle-mouse-button\"\u003eorbit without middle mouse button \u003ca href=\"#orbit-without-middle-mouse-button\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/239a709b-7242-4a75-b100-f3a8cc533364.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-25T13-36-32-690Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/239a709b-7242-4a75-b100-f3a8cc533364.png\" alt=\"screenshot-2025-07-25T13-36-32-690Z.png\"/ data-glightbox=\"description: screenshot-2025-07-25T13-36-32-690Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"viewport-shading-rendered\"\u003eviewport shading rendered \u003ca href=\"#viewport-shading-rendered\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/cea5c464-53b2-4926-ab02-31107d84d23f.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-25T13-37-52-174Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/cea5c464-53b2-4926-ab02-31107d84d23f.png\" alt=\"screenshot-2025-07-25T13-37-52-174Z.png\"/ data-glightbox=\"description: screenshot-2025-07-25T13-37-52-174Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n## First Launch\n\n![screenshot-2025-07-25T13-29-06-029Z.png](https://dropper.waylonwalker.com/api/file/ecd7349a-b04c-4496-8b34-3f2c82bdd790.png)\n\n## my setup\n\n![screenshot-2025-07-25T13-30-22-340Z.png](https://dropper.waylonwalker.com/api/file/0baedcf5-9b6a-4ee3-b18f-76e695e00a8c.png)\n\n## Add\n\n_shift A_\n\n## bump resolution scale\n\nedit -\u003e preferences -\u003e interface -\u003e resolution scale 1.25\n\n![screenshot-2025-07-25T13-35-20-580Z.png](https://dropper.waylonwalker.com/api/file/d2c9fc7c-c689-4f6f-b2db-96bd8bb59ab3.png)\n\n## orbit without middle mouse button\n\n![screenshot-2025-07-25T13-36-32-690Z.png](https://dropper.waylonwalker.com/api/file/239a709b-7242-4a75-b100-f3a8cc533364.png)\n\n## viewport shading rendered\n\n![screenshot-2025-07-25T13-37-52-174Z.png](https://dropper.waylonwalker.com/api/file/cea5c464-53b2-4926-ab02-31107d84d23f.png)\n",
      "summary": "_",
      "date_published": "2025-07-25T08:29:27Z",
      "date_modified": "2025-07-25T08:29:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-763/",
      "url": "https://waylonwalker.com/thought-763/",
      "title": "💭 Neovim vs Emacs | Roundtable w/ TJ DeVries, DistroTube, Greg A...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"SnhcXR9CKno\" title=\"✂️ vsc***\" playlabel=\"Play: ✂️ vsc***\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI don’t think I ever fully heard the full meaning of vsc*** and why it gets bleeped.  I knew that it had to do with M$, but Teej explains it so well here.  Its about the editor not really being open sources, but is marketed to be such.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"SnhcXR9CKno\" title=\"✂️ vsc***\" playlabel=\"Play: ✂️ vsc***\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI don't think I ever fully heard the full meaning of vsc*** and why it gets bleeped.  I knew that it had to do with M$, but Teej explains it so well here.  Its about the editor not really being open sources, but is marketed to be such.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/clip/UgkxQevfazaval9KH22a6BjMRkdBs7541Kry",
      "date_published": "2025-07-25T02:13:59Z",
      "date_modified": "2025-07-25T02:13:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought",
        "vscode"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-762/",
      "url": "https://waylonwalker.com/thought-762/",
      "title": "💭 Glossary Web Component – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/05/07/glossary-web-component/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2025-05-07-glossary-web-component.png\" alt=\"Glossary Web Component — The one where I put the hypercard in the hyperlink\" loading=\"lazy\"/ data-glightbox=\"description: Glossary Web Component — The one where I put the hypercard in the hyperlink\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGlossary Web Component\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I put the hypercard in the hyperlink\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI really enjoy David’s Glossary, he has absolutely nailed it.  I’m working on one for myself that feels close but not quite.  I want to have a list of words that auto glossary to terms for me, maybe this is too much automation and I should just lean on wikilinks, i.e. \u003ca href=\"/sick-wikilink-hover/\" class=\"wikilink\" data-title=\"sick wikilink hover\" data-description=\"Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...\" data-date=\"2024-05-30\" data-preview=\"Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...\"\u003esick wikilink hover\u003c/a\u003e, they only take wrapping in brackets.   But like David mentions here its a lot of work to make sure they are right on all the older posts.  I think it needs to be done with js on my setup, I don’t have no fancy wroker to modify \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e on the way out, I’m fully static right now, so i would need to do full rebuilds any time the glossary changes, i’m trying to cut down on the number of features that require full site rebuilds and potential cache issues.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/05/07/glossary-web-component/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2025-05-07-glossary-web-component.png\" alt=\"Glossary Web Component — The one where I put the hypercard in the hyperlink\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGlossary Web Component\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I put the hypercard in the hyperlink\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI really enjoy David's Glossary, he has absolutely nailed it.  I'm working on one for myself that feels close but not quite.  I want to have a list of words that auto glossary to terms for me, maybe this is too much automation and I should just lean on wikilinks, i.e. \u003ca href=\"/sick-wikilink-hover/\" class=\"wikilink\" data-title=\"sick wikilink hover\" data-description=\"Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...\" data-date=\"2024-05-30\"\u003esick wikilink hover\u003c/a\u003e, they only take wrapping in brackets.   But like David mentions here its a lot of work to make sure they are right on all the older posts.  I think it needs to be done with js on my setup, I don't have no fancy wroker to modify html on the way out, I'm fully static right now, so i would need to do full rebuilds any time the glossary changes, i'm trying to cut down on the number of features that require full site rebuilds and potential cache issues.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2025/05/07/glossary-web-component/",
      "date_published": "2025-07-25T02:11:58Z",
      "date_modified": "2025-07-25T02:11:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-761/",
      "url": "https://waylonwalker.com/thought-761/",
      "title": "💭 An Ode To My 10-Year-Old Thinkpad T440",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://mbrizic.com/blog/thinkpad-t440/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mbrizic.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mbrizic.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAn Ode To My 10-Year-Old Thinkpad T440\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003embrizic.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI like reading about old hardware and how to keep it running, sending shit out to e-waste after barely using it for a year makes my skin crawl.  I find it interesting how most of these resurrections start with a linux build, and the author giving in and going for linux for the first time and enjoying being able to use something they thought was useless for real work.\u003c/p\u003e\n\u003cp\u003eThat being said I have weird thoughts similar to this guy about being able to take a machine and write a novel somewhere off in the distance, but any time I try to do real work form any laptop these days the ergonomics become so unappealing that I tend to just not do anything away from my desk.  Theres something that sounds so great about opening vim on old hardware that could last for hours, sip on coffee and write away, but it never works out like that in practice.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://mbrizic.com/blog/thinkpad-t440/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAn Ode To My 10-Year-Old Thinkpad T440\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003embrizic.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI like reading about old hardware and how to keep it running, sending shit out to e-waste after barely using it for a year makes my skin crawl.  I find it interesting how most of these resurrections start with a linux build, and the author giving in and going for linux for the first time and enjoying being able to use something they thought was useless for real work.  \n\nThat being said I have weird thoughts similar to this guy about being able to take a machine and write a novel somewhere off in the distance, but any time I try to do real work form any laptop these days the ergonomics become so unappealing that I tend to just not do anything away from my desk.  Theres something that sounds so great about opening vim on old hardware that could last for hours, sip on coffee and write away, but it never works out like that in practice.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://mbrizic.com/blog/thinkpad-t440/",
      "date_published": "2025-07-25T01:33:47Z",
      "date_modified": "2025-07-25T01:33:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-24-notes/",
      "url": "https://waylonwalker.com/2025-07-24-notes/",
      "title": "2025-07-24 Notes",
      "content_html": "\u003cp\u003eCompleted the 8-bit dungeon in Cat Quest III with \u003ca href=\"https://wyattbubbylee.com\"\u003ewyatt\u003c/a\u003e today.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.mp4\" class=\"glightbox-link\" aria-label=\"8-bit-dungeon.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.mp4\" type=\"video/mp4\"\u003e8-bit-dungeon.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nCompleted the 8-bit dungeon in Cat Quest III with [wyatt](https://wyattbubbylee.com) today.\n\n![8-bit-dungeon.mp4](https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.mp4)\n",
      "summary": "Completed the 8-bit dungeon in Cat Quest III with wyatt today.",
      "date_published": "2025-07-24T20:58:17Z",
      "date_modified": "2025-07-24T20:58:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-23-notes/",
      "url": "https://waylonwalker.com/2025-07-23-notes/",
      "title": "2025-07-23 Notes",
      "content_html": "\u003cp\u003eToday I set up hypridle on my hyprland desktop build.  It was not too bad, I’m\nprobably going to tweak it as it I go if it bothers me, for now I’m giving it a\nshot.  My monitor is sometimes a PITA to get to wake up, that is my main\nconcern.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S hypridle\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is the config I landed on.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-conf\"\u003e# dim screen\ngeneral {\n    lock_cmd = pidof hyprlock || hyprlock       # avoid starting multiple hyprlock instances.\n    before_sleep_cmd = loginctl lock-session    # lock before suspend.\n    after_sleep_cmd = hyprctl dispatch dpms on \u0026amp;\u0026amp; ddcutil setvcp 10 100  # to avoid having to press a key twice to turn on the display.\n}\n\nlistener {\n    timeout = 120                            # in seconds.\n    on-timeout = ddcutil setvcp 10 5 # command to run when timeout has passed.\n    on-resume = ddcutil setvcp 10 100  # command to run when activity is detected after timeout has fired.\n}\n\n# screen off\nlistener {\n    timeout = 3600\n    on-timeout = hyprctl dispatch dpms off\n    on-resume = hyprctl dispatch dpms on\n}\n\n# warning screen is about to go off\nlistener {\n    timeout = 315                            # in seconds.\n    on-timeout = notify-send \u0026#34;You are idle!\u0026#34; # command to run when timeout has passed.\n}\n\nlistener {\n    timeout = 330                            # in seconds.\n    on-timeout = loginctl lock-session\n}\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003elearned about \u003ccode\u003ewalker\u003c/code\u003e launcher and \u003ccode\u003ewev\u003c/code\u003e wayland event debgugger.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eEnded the day destroying the duck of doom in cat quest III.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.mp4\" class=\"glightbox-link\" aria-label=\"duck-of-doom.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.mp4\" type=\"video/mp4\"\u003educk-of-doom.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nToday I set up hypridle on my hyprland desktop build.  It was not too bad, I'm\nprobably going to tweak it as it I go if it bothers me, for now I'm giving it a\nshot.  My monitor is sometimes a PITA to get to wake up, that is my main\nconcern.\n\n``` bash\nparu -S hypridle\n```\n\nHere is the config I landed on.\n\n``` conf\n# dim screen\ngeneral {\n    lock_cmd = pidof hyprlock || hyprlock       # avoid starting multiple hyprlock instances.\n    before_sleep_cmd = loginctl lock-session    # lock before suspend.\n    after_sleep_cmd = hyprctl dispatch dpms on \u0026\u0026 ddcutil setvcp 10 100  # to avoid having to press a key twice to turn on the display.\n}\n\nlistener {\n    timeout = 120                            # in seconds.\n    on-timeout = ddcutil setvcp 10 5 # command to run when timeout has passed.\n    on-resume = ddcutil setvcp 10 100  # command to run when activity is detected after timeout has fired.\n}\n\n# screen off\nlistener {\n    timeout = 3600\n    on-timeout = hyprctl dispatch dpms off\n    on-resume = hyprctl dispatch dpms on\n}\n\n# warning screen is about to go off\nlistener {\n    timeout = 315                            # in seconds.\n    on-timeout = notify-send \"You are idle!\" # command to run when timeout has passed.\n}\n\nlistener {\n    timeout = 330                            # in seconds.\n    on-timeout = loginctl lock-session\n}\n\n```\n\nlearned about `walker` launcher and `wev` wayland event debgugger.\n\n---\n\nEnded the day destroying the duck of doom in cat quest III.\n\n![duck-of-doom.mp4](https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.mp4)\n",
      "summary": "Today I set up hypridle on my hyprland desktop build. It was not too bad, I'm probably going to tweak it as it I go if it bothers me, for now I'm giving it a...",
      "date_published": "2025-07-23T20:37:04Z",
      "date_modified": "2025-07-23T20:37:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-22-notes/",
      "url": "https://waylonwalker.com/2025-07-22-notes/",
      "title": "2025-07-22 Notes",
      "content_html": "\u003ch2 id=\"waybar-ricing\"\u003eWaybar ricing \u003ca href=\"#waybar-ricing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"s2\"\u003e\u0026#34;format\u0026#34;\u003c/span\u003e\u003cspan class=\"err\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;{:%a %b %d %I:%M %p}\u0026#34;\u003c/span\u003e\u003cspan class=\"err\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNext I ripped a calendar from the docs.  When hovered I get a full year\ncalendar, right click gives me only the current month.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;clock\u0026#34;\u003c/span\u003e\u003cspan class=\"err\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;format\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;{:%a %b %d %I:%M %p}\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;format-alt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;{:%A, %B %d, %Y (%R)}  \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;tooltip-format\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;tt\u0026gt;\u0026lt;small\u0026gt;{calendar}\u0026lt;/small\u0026gt;\u0026lt;/tt\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;calendar\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;mode\u0026#34;\u003c/span\u003e          \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;year\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;mode-mon-col\u0026#34;\u003c/span\u003e  \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;weeks-pos\u0026#34;\u003c/span\u003e     \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll\u0026#34;\u003c/span\u003e     \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;format\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;months\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e     \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ffead3\u0026#39;\u0026gt;\u0026lt;b\u0026gt;{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;days\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e       \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ecc6d9\u0026#39;\u0026gt;\u0026lt;b\u0026gt;{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;weeks\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e      \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#99ffdd\u0026#39;\u0026gt;\u0026lt;b\u0026gt;W{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;weekdays\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e   \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ffcc66\u0026#39;\u0026gt;\u0026lt;b\u0026gt;{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;today\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e      \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ff6699\u0026#39;\u0026gt;\u0026lt;b\u0026gt;\u0026lt;u\u0026gt;{}\u0026lt;/u\u0026gt;\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;actions\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e  \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-click-right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;mode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;tz_up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-down\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;tz_down\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;shift_up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-down\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;shift_down\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI still want to change up the colors, but I’m happy with the usefulness of this\nfor now.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a4fb1285-2830-4ccd-a974-347d0acf5fd5.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-22T13-01-20-275Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a4fb1285-2830-4ccd-a974-347d0acf5fd5.png\" alt=\"screenshot-2025-07-22T13-01-20-275Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T13-01-20-275Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n## Waybar ricing\n\n``` json\n  \"format\": \"{:%a %b %d %I:%M %p}\",\n```\n\nNext I ripped a calendar from the docs.  When hovered I get a full year\ncalendar, right click gives me only the current month.\n\n``` json\n\"clock\": {\n  \"format\": \"{:%a %b %d %I:%M %p}\",\n  \"format-alt\": \"{:%A, %B %d, %Y (%R)}  \",\n  \"tooltip-format\": \"\u003ctt\u003e\u003csmall\u003e{calendar}\u003c/small\u003e\u003c/tt\u003e\",\n  \"calendar\": {\n              \"mode\"          : \"year\",\n              \"mode-mon-col\"  : 3,\n              \"weeks-pos\"     : \"right\",\n              \"on-scroll\"     : 1,\n              \"format\": {\n                          \"months\":     \"\u003cspan color='#ffead3'\u003e\u003cb\u003e{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"days\":       \"\u003cspan color='#ecc6d9'\u003e\u003cb\u003e{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"weeks\":      \"\u003cspan color='#99ffdd'\u003e\u003cb\u003eW{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"weekdays\":   \"\u003cspan color='#ffcc66'\u003e\u003cb\u003e{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"today\":      \"\u003cspan color='#ff6699'\u003e\u003cb\u003e\u003cu\u003e{}\u003c/u\u003e\u003c/b\u003e\u003c/span\u003e\"\n                          }\n              },\n  \"actions\":  {\n              \"on-click-right\": \"mode\",\n              \"on-scroll-up\": \"tz_up\",\n              \"on-scroll-down\": \"tz_down\",\n              \"on-scroll-up\": \"shift_up\",\n              \"on-scroll-down\": \"shift_down\"\n              }\n  }\n```\n\nI still want to change up the colors, but I'm happy with the usefulness of this\nfor now.\n\n![screenshot-2025-07-22T13-01-20-275Z.png](https://dropper.waylonwalker.com/api/file/a4fb1285-2830-4ccd-a974-347d0acf5fd5.png)\n",
      "summary": "Next I ripped a calendar from the docs. When hovered I get a full year calendar, right click gives me only the current month.",
      "date_published": "2025-07-22T08:01:51Z",
      "date_modified": "2025-07-22T08:01:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-760/",
      "url": "https://waylonwalker.com/thought-760/",
      "title": "💭 Transparent Textures",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://transparenttextures.com/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/transparenttextures.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/transparenttextures.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTransparent Textures\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etransparenttextures.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFantastic resource of background textures, I will be using this for some projects.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://transparenttextures.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTransparent Textures\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etransparenttextures.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFantastic resource of background textures, I will be using this for some projects.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://transparenttextures.com/",
      "date_published": "2025-07-22T01:14:59Z",
      "date_modified": "2025-07-22T01:14:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-21-notes/",
      "url": "https://waylonwalker.com/2025-07-21-notes/",
      "title": "2025-07-21 Notes",
      "content_html": "\u003cp\u003eIn my adventure to rice out hyprland I set up a sddm theme today, and it looks\nsick by only changing the wallpaper.  I tried out one theme and was pretty\nhappy with the results.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f89bc45e-aa10-473e-ae7b-85c0813850c6.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-22T01-30-03-700Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f89bc45e-aa10-473e-ae7b-85c0813850c6.png\" alt=\"screenshot-2025-07-22T01-30-03-700Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T01-30-03-700Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAlright, I ended up ricing out some more, looks so much better than the default sddm theme.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4bf76e68-9a8a-4aa1-b7e9-2df48e63b963.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-22T01-42-51-608Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4bf76e68-9a8a-4aa1-b7e9-2df48e63b963.png\" alt=\"screenshot-2025-07-22T01-42-51-608Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T01-42-51-608Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eDefault sddm.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f5c2a31a-63e0-4133-b33b-cdad936eb921.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-22T01-43-40-329Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f5c2a31a-63e0-4133-b33b-cdad936eb921.png\" alt=\"screenshot-2025-07-22T01-43-40-329Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T01-43-40-329Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eMy only hiccup was the wallpaper needed to be in a path relative to the theme\nroot directory and not an absolute path to my home directory.\u003c/p\u003e\n\u003cp\u003eThis command was super helpful for testing greeter themes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/eucalyptus-drop\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn my adventure to rice out hyprland I set up a sddm theme today, and it looks\nsick by only changing the wallpaper.  I tried out one theme and was pretty\nhappy with the results.\n\n![screenshot-2025-07-22T01-30-03-700Z.png](https://dropper.waylonwalker.com/api/file/f89bc45e-aa10-473e-ae7b-85c0813850c6.png)\n\nAlright, I ended up ricing out some more, looks so much better than the default sddm theme.\n\n![screenshot-2025-07-22T01-42-51-608Z.png](https://dropper.waylonwalker.com/api/file/4bf76e68-9a8a-4aa1-b7e9-2df48e63b963.png)\n\nDefault sddm.\n\n![screenshot-2025-07-22T01-43-40-329Z.png](https://dropper.waylonwalker.com/api/file/f5c2a31a-63e0-4133-b33b-cdad936eb921.png)\n\nMy only hiccup was the wallpaper needed to be in a path relative to the theme\nroot directory and not an absolute path to my home directory.\n\nThis command was super helpful for testing greeter themes.\n\n``` bash\nsddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/eucalyptus-drop\n```\n",
      "summary": "In my adventure to rice out hyprland I set up a sddm theme today, and it looks sick by only changing the wallpaper. I tried out one theme and was pretty...",
      "date_published": "2025-07-21T20:30:21Z",
      "date_modified": "2025-07-21T20:30:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-759/",
      "url": "https://waylonwalker.com/thought-759/",
      "title": "💭 uv run for running tests on versions of Python",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daniel.feldroy.com/posts/2025-07-uv-run-for-testing-python-versions\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://f004.backblazeb2.com/file/daniel-feldroy-com/public/images/profile.jpg\" alt=\"uv run for running tests on versions of Python — Using uv run with make to replace tox or nox for testing multiple versions of Python locally.\" loading=\"lazy\"/ data-glightbox=\"description: uv run for running tests on versions of Python — Using uv run with make to replace tox or nox for testing multiple versions of Python locally.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003euv run for running tests on versions of Python\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUsing uv run with make to replace tox or nox for testing multiple versions of Python locally.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehttps://daniel.feldroy.com · daniel.feldroy.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSuch a fantastic use of uv, its so fast and flexible and does everything I need that next time I go to set up some more complex testing like this I’m going to lean towards it more than i would something like tox.  In the post Daniel sets up matrix testing for testing out different versions of python with the same pytest test suite.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daniel.feldroy.com/posts/2025-07-uv-run-for-testing-python-versions\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://f004.backblazeb2.com/file/daniel-feldroy-com/public/images/profile.jpg\" alt=\"uv run for running tests on versions of Python — Using uv run with make to replace tox or nox for testing multiple versions of Python locally.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003euv run for running tests on versions of Python\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUsing uv run with make to replace tox or nox for testing multiple versions of Python locally.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehttps://daniel.feldroy.com \u0026middot; daniel.feldroy.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSuch a fantastic use of uv, its so fast and flexible and does everything I need that next time I go to set up some more complex testing like this I'm going to lean towards it more than i would something like tox.  In the post Daniel sets up matrix testing for testing out different versions of python with the same pytest test suite.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://daniel.feldroy.com/posts/2025-07-uv-run-for-testing-python-versions",
      "date_published": "2025-07-21T20:25:40Z",
      "date_modified": "2025-07-21T20:25:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought",
        "uv"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-19-notes/",
      "url": "https://waylonwalker.com/2025-07-19-notes/",
      "title": "2025-07-19 Notes",
      "content_html": "\u003cp\u003eProgress on markata themes, I’m able to get feedback in the terminal.  I’m\nbuilding out a custom color model that will be able to mix and blend colors\nwith intent of this having the ability to work inside of a jinja template, so\nrather than needing to lean into transparency for mixing I can mix colors with\nintent.\u003c/p\u003e\n\u003cp\u003eNow with color mixing we can do subtle changes to things like headings.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f0063cc3-ec40-4658-be06-83ad9e8b8589.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-20T01-22-16-799Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f0063cc3-ec40-4658-be06-83ad9e8b8589.png\" alt=\"screenshot-2025-07-20T01-22-16-799Z.png\"/ data-glightbox=\"description: screenshot-2025-07-20T01-22-16-799Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"themes-console-printout\"\u003eThemes console printout \u003ca href=\"#themes-console-printout\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre style=\"line-height:1.22; font-family:Menlo,\u0026#39;DejaVu Sans Mono\u0026#39;,consolas,\u0026#39;Courier New\u0026#39;,monospace\"\u003e\u003ccode style=\"font-family:inherit\"\u003e\n\n\u003cspan style=\"color: #f3f4f6; text-decoration-color: #f3f4f6; background-color: #1a1b26; font-weight: bold\"\u003eTokyo-Night Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b7280\"\u003e #6b7280 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4f46e5\"\u003e #4f46e5 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9333ea\"\u003e #9333ea \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9fafb\"\u003e #f9fafb \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5b4fc\"\u003e #a5b4fc \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e0e7ff\"\u003e #e0e7ff \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e5e7eb\"\u003e #e5e7eb \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9ca3af\"\u003e #9ca3af \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1a1b26\"\u003e #1a1b26 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #222436\"\u003e #222436 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4261\"\u003e #3b4261 \u003c/span\u003e\n\n\u003cspan style=\"color: #fecdd3; text-decoration-color: #fecdd3; background-color: #1e1e28; font-weight: bold\"\u003eCatppuccin Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f43f5e\"\u003e #f43f5e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9f1239\"\u003e #9f1239 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9d174d\"\u003e #9d174d \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb7185\"\u003e #fb7185 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c4b5fd\"\u003e #c4b5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e1e28\"\u003e #1e1e28 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2a38\"\u003e #2a2a38 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2c2c3a\"\u003e #2c2c3a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b2b3a\"\u003e #2b2b3a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #403d52\"\u003e #403d52 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4e4e5a\"\u003e #4e4e5a \u003c/span\u003e\n\n\u003cspan style=\"color: #dcfce7; text-decoration-color: #dcfce7; background-color: #2b3339; font-weight: bold\"\u003eEverforest Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #16a34a\"\u003e #16a34a \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #84cc16\"\u003e #84cc16 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f0fdf4\"\u003e #f0fdf4 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a3e635\"\u003e #a3e635 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b3339\"\u003e #2b3339 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #374045\"\u003e #374045 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b444a\"\u003e #3b444a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d484f\"\u003e #3d484f \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #475258\"\u003e #475258 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #517d90\"\u003e #517d90 \u003c/span\u003e\n\n\u003cspan style=\"color: #ffedd5; text-decoration-color: #ffedd5; background-color: #282828; font-weight: bold\"\u003eGruvbox Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #713f12\"\u003e #713f12 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ea580c\"\u003e #ea580c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #eab308\"\u003e #eab308 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9a3412\"\u003e #9a3412 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fef9c3\"\u003e #fef9c3 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #facc15\"\u003e #facc15 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #282828\"\u003e #282828 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3c3836\"\u003e #3c3836 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #504945\"\u003e #504945 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3634\"\u003e #3a3634 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f97316\"\u003e #f97316 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #665c54\"\u003e #665c54 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c6f64\"\u003e #7c6f64 \u003c/span\u003e\n\n\u003cspan style=\"color: #f1f5f9; text-decoration-color: #f1f5f9; background-color: #1f2335; font-weight: bold\"\u003eKanagwa Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e293b\"\u003e #1e293b \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #2563eb\"\u003e #2563eb \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e2e8f0\"\u003e #e2e8f0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e40af\"\u003e #1e40af \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dbeafe\"\u003e #dbeafe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cbd5e1\"\u003e #cbd5e1 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #60a5fa\"\u003e #60a5fa \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2e3e\"\u003e #2a2e3e \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3f52\"\u003e #3a3f52 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #394260\"\u003e #394260 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4b5162\"\u003e #4b5162 \u003c/span\u003e\n\n    \u003cspan style=\"color: #cffafe; text-decoration-color: #cffafe; background-color: #2e3440; font-weight: bold\"\u003eNord Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0891b2\"\u003e #0891b2 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4252\"\u003e #3b4252 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #434c5e\"\u003e #434c5e \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4c566a\"\u003e #4c566a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #06b6d4\"\u003e #06b6d4 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #5e81ac\"\u003e #5e81ac \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6b7d97\"\u003e #6b7d97 \u003c/span\u003e\n\n\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003eSynthwave-\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e84\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #86198f\"\u003e #86198f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #d946ef\"\u003e #d946ef \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdf2f8\"\u003e #fdf2f8 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fbcfe8\"\u003e #fbcfe8 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b21a8\"\u003e #6b21a8 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f5d0fe\"\u003e #f5d0fe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9a8d4\"\u003e #f9a8d4 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c060c0\"\u003e #c060c0 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ff66ff\"\u003e #f6f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e879f9\"\u003e #e879f9 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2d0036\"\u003e #2d0036 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #440055\"\u003e #405 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d0047\"\u003e #3d0047 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #520066\"\u003e #520066 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #8800aa\"\u003e #80a \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nProgress on markata themes, I'm able to get feedback in the terminal.  I'm\nbuilding out a custom color model that will be able to mix and blend colors\nwith intent of this having the ability to work inside of a jinja template, so\nrather than needing to lean into transparency for mixing I can mix colors with\nintent.\n\nNow with color mixing we can do subtle changes to things like headings.\n\n![screenshot-2025-07-20T01-22-16-799Z.png](https://dropper.waylonwalker.com/api/file/f0063cc3-ec40-4658-be06-83ad9e8b8589.png)\n\n## Themes console printout\n\n\u003cpre style=\"line-height:1.22; font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"\u003e\u003ccode style=\"font-family:inherit\"\u003e\n\n\u003cspan style=\"color: #f3f4f6; text-decoration-color: #f3f4f6; background-color: #1a1b26; font-weight: bold\"\u003eTokyo-Night Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b7280\"\u003e #6b7280 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4f46e5\"\u003e #4f46e5 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9333ea\"\u003e #9333ea \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9fafb\"\u003e #f9fafb \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5b4fc\"\u003e #a5b4fc \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e0e7ff\"\u003e #e0e7ff \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e5e7eb\"\u003e #e5e7eb \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9ca3af\"\u003e #9ca3af \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1a1b26\"\u003e #1a1b26 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #222436\"\u003e #222436 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4261\"\u003e #3b4261 \u003c/span\u003e\n\n\u003cspan style=\"color: #fecdd3; text-decoration-color: #fecdd3; background-color: #1e1e28; font-weight: bold\"\u003eCatppuccin Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f43f5e\"\u003e #f43f5e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9f1239\"\u003e #9f1239 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9d174d\"\u003e #9d174d \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb7185\"\u003e #fb7185 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c4b5fd\"\u003e #c4b5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e1e28\"\u003e #1e1e28 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2a38\"\u003e #2a2a38 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2c2c3a\"\u003e #2c2c3a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b2b3a\"\u003e #2b2b3a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #403d52\"\u003e #403d52 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4e4e5a\"\u003e #4e4e5a \u003c/span\u003e\n\n\u003cspan style=\"color: #dcfce7; text-decoration-color: #dcfce7; background-color: #2b3339; font-weight: bold\"\u003eEverforest Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #16a34a\"\u003e #16a34a \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #84cc16\"\u003e #84cc16 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f0fdf4\"\u003e #f0fdf4 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a3e635\"\u003e #a3e635 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b3339\"\u003e #2b3339 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #374045\"\u003e #374045 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b444a\"\u003e #3b444a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d484f\"\u003e #3d484f \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #475258\"\u003e #475258 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #517d90\"\u003e #517d90 \u003c/span\u003e\n\n\u003cspan style=\"color: #ffedd5; text-decoration-color: #ffedd5; background-color: #282828; font-weight: bold\"\u003eGruvbox Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #713f12\"\u003e #713f12 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ea580c\"\u003e #ea580c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #eab308\"\u003e #eab308 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9a3412\"\u003e #9a3412 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fef9c3\"\u003e #fef9c3 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #facc15\"\u003e #facc15 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #282828\"\u003e #282828 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3c3836\"\u003e #3c3836 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #504945\"\u003e #504945 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3634\"\u003e #3a3634 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f97316\"\u003e #f97316 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #665c54\"\u003e #665c54 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c6f64\"\u003e #7c6f64 \u003c/span\u003e\n\n\u003cspan style=\"color: #f1f5f9; text-decoration-color: #f1f5f9; background-color: #1f2335; font-weight: bold\"\u003eKanagwa Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e293b\"\u003e #1e293b \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #2563eb\"\u003e #2563eb \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e2e8f0\"\u003e #e2e8f0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e40af\"\u003e #1e40af \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dbeafe\"\u003e #dbeafe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cbd5e1\"\u003e #cbd5e1 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #60a5fa\"\u003e #60a5fa \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2e3e\"\u003e #2a2e3e \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3f52\"\u003e #3a3f52 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #394260\"\u003e #394260 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4b5162\"\u003e #4b5162 \u003c/span\u003e\n\n    \u003cspan style=\"color: #cffafe; text-decoration-color: #cffafe; background-color: #2e3440; font-weight: bold\"\u003eNord Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0891b2\"\u003e #0891b2 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4252\"\u003e #3b4252 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #434c5e\"\u003e #434c5e \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4c566a\"\u003e #4c566a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #06b6d4\"\u003e #06b6d4 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #5e81ac\"\u003e #5e81ac \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6b7d97\"\u003e #6b7d97 \u003c/span\u003e\n\n\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003eSynthwave-\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e84\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #86198f\"\u003e #86198f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #d946ef\"\u003e #d946ef \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdf2f8\"\u003e #fdf2f8 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fbcfe8\"\u003e #fbcfe8 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b21a8\"\u003e #6b21a8 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f5d0fe\"\u003e #f5d0fe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9a8d4\"\u003e #f9a8d4 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c060c0\"\u003e #c060c0 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ff66ff\"\u003e #f6f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e879f9\"\u003e #e879f9 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2d0036\"\u003e #2d0036 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #440055\"\u003e #405 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d0047\"\u003e #3d0047 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #520066\"\u003e #520066 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #8800aa\"\u003e #80a \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n",
      "summary": "Progress on markata themes, I'm able to get feedback in the terminal. I'm building out a custom color model that will be able to mix and blend colors with...",
      "date_published": "2025-07-19T17:12:15Z",
      "date_modified": "2025-07-19T17:12:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-18-notes/",
      "url": "https://waylonwalker.com/2025-07-18-notes/",
      "title": "2025-07-18 Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"/fc/\" class=\"wikilink\" data-title=\"fc\" data-description=\"I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...\" data-date=\"2025-07-18\" data-preview=\"I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...\"\u003efc\u003c/a\u003e is pretty great.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eMarkata themes progress, setting up some visual feedback in the terminal for\nmyself to show themes.  Trying to think through how to blend colors to get more\nautomated variations and to get good colors without needing to use\ntransparancy, I was running into issues already trying to lean into\ntransparancy with text bleed.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d069e806-e3c7-4549-a1c0-12d8a25c1394.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-19T01-16-55-168Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d069e806-e3c7-4549-a1c0-12d8a25c1394.png\" alt=\"screenshot-2025-07-19T01-16-55-168Z.png\"/ data-glightbox=\"description: screenshot-2025-07-19T01-16-55-168Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n\u003ca href=\"/fc/\" class=\"wikilink\" data-title=\"fc\" data-description=\"I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...\" data-date=\"2025-07-18\"\u003efc\u003c/a\u003e is pretty great.\n\n---\n\nMarkata themes progress, setting up some visual feedback in the terminal for\nmyself to show themes.  Trying to think through how to blend colors to get more\nautomated variations and to get good colors without needing to use\ntransparancy, I was running into issues already trying to lean into\ntransparancy with text bleed.\n\n![screenshot-2025-07-19T01-16-55-168Z.png](https://dropper.waylonwalker.com/api/file/d069e806-e3c7-4549-a1c0-12d8a25c1394.png)\n",
      "summary": "fc is pretty great.",
      "date_published": "2025-07-18T19:27:18Z",
      "date_modified": "2025-07-18T19:27:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-756/",
      "url": "https://waylonwalker.com/thought-756/",
      "title": "💭 2025-07-10 Notes",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/2025-07-10-notes/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/pype.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/pype.dev.ico\"\u003e\n    \u003c/a\u003e\u003cdiv class=\"embed-card-image\"\u003e\u003ca href=\"https://pype.dev/2025-07-10-notes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"2025-07-10 Notes | Nic Payne — \u0026lt;a href=\" 2025-07-09-notes=\"\" \"=\"\" class=\"wikilink glightbox\" data-title=\"2025-07-09 Notes\" data-description=\"What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...\" data-date=\"2025-07-09\"/ data-glightbox=\"description: 2025-07-10 Notes | Nic Payne — \u0026lt;a href=\"\u003e2025-07-09 Notes\u003c/a\u003e from yesterday I have temporal stuff kind of going with postiz in a windsurf session working on [[thoughts-to-nostr]] Been cleaning up my z\u0026#34; loading=\u0026#34;lazy\u0026#34;\u0026gt;\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e2025-07-10 Notes | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e\u003ca href=\"/2025-07-09-notes/\" class=\"wikilink\" data-title=\"2025-07-09 Notes\" data-description=\"What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...\" data-date=\"2025-07-09\" data-preview=\"What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...\"\u003e2025-07-09 Notes\u003c/a\u003e from yesterday I have temporal stuff kind of going with postiz in a windsurf session working on [[thoughts-to-nostr]] Been cleaning up my z\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \n\u003c/div\u003e\n\u003cp\u003ebig fan of eza and dust, I like these aliases to have some common commands at my fingertips.  I often use the tree command and yes it sometimes goes too deep to actually be useful.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003elt\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;eza -T --level=2\u0026#39;\u003c/span\u003e             \u003cspan class=\"c1\"\u003e# Tree view, 2 levels deep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003eltt\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;eza -T --level=3\u0026#39;\u003c/span\u003e            \u003cspan class=\"c1\"\u003e# Tree view, 3 levels deep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003edu1\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;dust -d 1\u0026#39;\u003c/span\u003e                   \u003cspan class=\"c1\"\u003e# Show only 1 level deep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003edu2\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;dust -d 2\u0026#39;\u003c/span\u003e                   \u003cspan class=\"c1\"\u003e# Show 2 levels deep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/2025-07-10-notes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"2025-07-10 Notes | Nic Payne — \u003ca href=\"/2025-07-09-notes/\" class=\"wikilink\" data-title=\"2025-07-09 Notes\" data-description=\"What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...\" data-date=\"2025-07-09\"\u003e2025-07-09 Notes\u003c/a\u003e from yesterday I have temporal stuff kind of going with postiz in a windsurf session working on [[thoughts-to-nostr]] Been cleaning up my z\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e2025-07-10 Notes | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e\u003ca href=\"/2025-07-09-notes/\" class=\"wikilink\" data-title=\"2025-07-09 Notes\" data-description=\"What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...\" data-date=\"2025-07-09\"\u003e2025-07-09 Notes\u003c/a\u003e from yesterday I have temporal stuff kind of going with postiz in a windsurf session working on [[thoughts-to-nostr]] Been cleaning up my z\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nbig fan of eza and dust, I like these aliases to have some common commands at my fingertips.  I often use the tree command and yes it sometimes goes too deep to actually be useful.\n\n``` bash\n    alias lt='eza -T --level=2'             # Tree view, 2 levels deep\n    alias ltt='eza -T --level=3'            # Tree view, 3 levels deep\n\n    alias du1='dust -d 1'                   # Show only 1 level deep\n    alias du2='dust -d 2'                   # Show 2 levels deep\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/2025-07-10-notes/",
      "date_published": "2025-07-18T15:26:28Z",
      "date_modified": "2025-07-18T15:26:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "cli",
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-755/",
      "url": "https://waylonwalker.com/thought-755/",
      "title": "💭 Vimothée Chalamet shares his new favorite shell command from a...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"0-SUk1G9xMg\" title=\"- YouTube\" playlabel=\"Play: - YouTube\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLove this dudes casual dry humor style, not afraid to poke fun at things with his dry ass satire.  that being said, fc is new and as a long time fan of up arrow and !! I will be using this often.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"0-SUk1G9xMg\" title=\"- YouTube\" playlabel=\"Play: - YouTube\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nLove this dudes casual dry humor style, not afraid to poke fun at things with his dry ass satire.  that being said, fc is new and as a long time fan of up arrow and !! I will be using this often.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=0-SUk1G9xMg",
      "date_published": "2025-07-18T12:56:59Z",
      "date_modified": "2025-07-18T12:56:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/fc/",
      "url": "https://waylonwalker.com/fc/",
      "title": "fc",
      "content_html": "\u003cp\u003eI am a linux user through and through.  Desktop, server, vms, containers,\neverything except my phone is linux.  With this I spend a lot of time in the\nterminal, and have been a long time user of \u003ccode\u003e!!\u003c/code\u003e to rerun the last command, but\nwith the ability to tack something on at the beginning or end.\u003c/p\u003e\n\u003cp\u003eTIL about \u003ccode\u003efc\u003c/code\u003e, which opens the last command in your shell history in your\n\u003ccode\u003e$EDITOR\u003c/code\u003e or pass in your editor \u003ccode\u003e-e nvim\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://manned.org/fc\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/manned.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/manned.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eman fc\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"rcap-of-how--works\"\u003eRcap of how !! works \u003ca href=\"#rcap-of-how--works\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e!!\u003c/code\u003e pronounces \u003ccode\u003ebang bang\u003c/code\u003e and will run the last command in your history.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003els -l\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e!! \u003cspan class=\"p\"\u003e|\u003c/span\u003e wc -l\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ls -l | wc -l\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo !!\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# sudo ls -l | wc -l\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e!!:s/-l/-l \u003cspan class=\"se\"\u003e\\/\u003c/span\u003etmp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# sudo ls -l /tmp | wc -l\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"fc-enters-the-chat\"\u003e\u003ccode\u003efc\u003c/code\u003e enters the chat \u003ca href=\"#fc-enters-the-chat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow making complex edits in your shell can be a bit of a chore, so \u003ccode\u003efc\u003c/code\u003e moves\nthis work to your \u003ccode\u003e$EDITOR\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003efc\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis pops open your $EDITOR with the last command in your history.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esudo\u003c/span\u003e \u003cspan class=\"nx\"\u003els\u003c/span\u003e \u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003el\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e \u003cspan class=\"nx\"\u003ewc\u003c/span\u003e \u003cspan class=\"p\"\u003e-\u003c/span\u003e\u003cspan class=\"nx\"\u003el\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9d624d65-de40-459b-9566-6e5c833cabcc.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-07-18T13-21-46-775Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9d624d65-de40-459b-9566-6e5c833cabcc.png\" alt=\"screenshot-2025-07-18T13-21-46-775Z.png\"/ data-glightbox=\"description: screenshot-2025-07-18T13-21-46-775Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"shell-history\"\u003eShell History \u003ca href=\"#shell-history\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003efc\u003c/code\u003e shows up in shell history, but \u003ccode\u003e!!\u003c/code\u003e does not, \u003ccode\u003e!!\u003c/code\u003e gets replaced by the\ncommand that it becomes.\u003c/p\u003e\n\u003ch2 id=\"up-arrow\"\u003eUp Arrow \u003ca href=\"#up-arrow\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eyaya yaya, I know you can also \u003ccode\u003eup-arrow c-e\u003c/code\u003e, but what fun is that, it’s barely a\nflex.  \u003ccode\u003efc\u003c/code\u003e just looks big brained and like you really know what you are doing.\u003c/p\u003e\n",
      "content_text": "\nI am a linux user through and through.  Desktop, server, vms, containers,\neverything except my phone is linux.  With this I spend a lot of time in the\nterminal, and have been a long time user of `!!` to rerun the last command, but\nwith the ability to tack something on at the beginning or end.\n\nTIL about `fc`, which opens the last command in your shell history in your\n`$EDITOR` or pass in your editor `-e nvim`.\n\n[man fc](https://manned.org/fc)\n\n## Rcap of how !! works\n\n`!!` pronounces `bang bang` and will run the last command in your history.\n\n``` bash\nls -l\n\n!! | wc -l\n# ls -l | wc -l\n\nsudo !!\n# sudo ls -l | wc -l\n\n!!:s/-l/-l \\/tmp\n# sudo ls -l /tmp | wc -l\n```\n\n## `fc` enters the chat\n\nNow making complex edits in your shell can be a bit of a chore, so `fc` moves\nthis work to your `$EDITOR`.\n\n``` bash\nfc\n```\n\nThis pops open your $EDITOR with the last command in your history.\n\n``` vim\nsudo ls -l | wc -l\n```\n\n![screenshot-2025-07-18T13-21-46-775Z.png](https://dropper.waylonwalker.com/api/file/9d624d65-de40-459b-9566-6e5c833cabcc.png)\n\n## Shell History\n\n`fc` shows up in shell history, but `!!` does not, `!!` gets replaced by the\ncommand that it becomes.\n\n## Up Arrow\n\nyaya yaya, I know you can also `up-arrow c-e`, but what fun is that, it's barely a\nflex.  `fc` just looks big brained and like you really know what you are doing.\n",
      "summary": "I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...",
      "date_published": "2025-07-18T07:52:53Z",
      "date_modified": "2025-07-18T07:52:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "cli",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-17-notes/",
      "url": "https://waylonwalker.com/2025-07-17-notes/",
      "title": "2025-07-17 Notes",
      "content_html": "\u003cp\u003eTIL \u003ca href=\"/pygments-htmlformatter/\" class=\"wikilink\" data-title=\"pygments htmlformatter\" data-description=\"I\u0026#39;ve been a long user of pygments, it\u0026#39;s been the thing that injects with funny little class names like and into the code blocks of my website. I\u0026#39;ve even gone...\" data-date=\"2025-07-17\" data-preview=\"I\u0026#39;ve been a long user of pygments, it\u0026#39;s been the thing that injects with funny little class names like and into the code blocks of my website. I\u0026#39;ve even gone...\"\u003epygments htmlformatter\u003c/a\u003e is a big win for \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, didn’t have a\nchance to take notes yesterday, but I’m really working on templates and themes.\nIt’s becoming more important for me as I get more users, i.e. family members\nblog sites up and running.  No one wants to look default, they all want to look\nunique, learning how to change out themes like this is a good win.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eStill working on searchcraft integrations and holy shit is it fast.  I’m\nsearching and scrubbing through logs out of cloudwatch at 2ms/search rather\nthan their dogwater 30s+ broken ui not loading, not showing me the logs I want.\nThis is not even apples to apples, cloudwatch chokes on one job worth of logs,\nI’ve got 500 jobs of logs and searchcraft is eating them up like nothin.\u003c/p\u003e\n",
      "content_text": "\nTIL \u003ca href=\"/pygments-htmlformatter/\" class=\"wikilink\" data-title=\"pygments htmlformatter\" data-description=\"I\u0026#39;ve been a long user of pygments, it\u0026#39;s been the thing that injects with funny little class names like and into the code blocks of my website. I\u0026#39;ve even gone...\" data-date=\"2025-07-17\"\u003epygments htmlformatter\u003c/a\u003e is a big win for \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, didn't have a\nchance to take notes yesterday, but I'm really working on templates and themes.\nIt's becoming more important for me as I get more users, i.e. family members\nblog sites up and running.  No one wants to look default, they all want to look\nunique, learning how to change out themes like this is a good win.\n\n---\n\nStill working on searchcraft integrations and holy shit is it fast.  I'm\nsearching and scrubbing through logs out of cloudwatch at 2ms/search rather\nthan their dogwater 30s+ broken ui not loading, not showing me the logs I want.\nThis is not even apples to apples, cloudwatch chokes on one job worth of logs,\nI've got 500 jobs of logs and searchcraft is eating them up like nothin.\n",
      "summary": "TIL pygments-htmlformatter is a big win for markata, didn't have a chance to take notes yesterday, but I'm really working on templates and themes. It's...",
      "date_published": "2025-07-17T19:54:05Z",
      "date_modified": "2025-07-17T19:54:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/pygments-htmlformatter/",
      "url": "https://waylonwalker.com/pygments-htmlformatter/",
      "title": "pygments htmlformatter",
      "content_html": "\u003cp\u003eI’ve been a long user of pygments, it’s been the thing that injects \u003ccode\u003e\u0026lt;spans\u0026gt;\u003c/code\u003e\nwith funny little class names like \u003ccode\u003esc\u003c/code\u003e and \u003ccode\u003esi\u003c/code\u003e into the code blocks of my\nwebsite.  I’ve even gone as far as implementing a \u003ca href=\"https://github.com/WaylonWalker/markata/blob/main/markata/plugins/md_it_highlight_code.py\" 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\"\u003eplugin for\nmd-it\u003c/a\u003e,\nbut I had no idea how to re-style it.  I long ago got a theme that looked good\nenough from somewhere and just used it, maybe I pulled something from their\ndocs site and forgot.  Today I learned you can list all the themes easily from\nthe library itself, and render out new css.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epygments.styles\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eget_all_styles\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003elist\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eget_all_styles\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# [\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;abap\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;algol_nu\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;algol\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;arduino\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;autumn\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;borland\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;bw\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;colorful\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;default\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;dracula\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;emacs\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;friendly_grayscale\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;friendly\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;fruity\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;github-dark\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;gruvbox-dark\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;gruvbox-light\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;igor\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;inkpot\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;lightbulb\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;lilypond\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;lovelace\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;manni\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;material\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;monokai\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;murphy\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;native\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;nord-darker\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;nord\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;one-dark\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;paraiso-dark\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;paraiso-light\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;pastie\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;perldoc\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;rainbow_dash\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;rrt\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;sas\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;solarized-dark\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;solarized-light\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;staroffice\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;stata-dark\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;stata-light\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;stata\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;tango\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;trac\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;vim\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;vs\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;xcode\u0026#39;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#39;zenburn\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epygments.formatters\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eHtmlFormatter\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003epygments.styles\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eget_style_by_name\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003estyle\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eget_style_by_name\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;monokai\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eformatter\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eHtmlFormatter\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eformatter\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget_style_defs\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;.highlight\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd now you get styles that you can add to your css and be any theme from the\nlist above.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003epre\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003eline-height\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e125\u003c/span\u003e\u003cspan class=\"kt\"\u003e%\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003etd\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003elinenos\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enormal\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003einherit\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground-color\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003etransparent\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-left\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-right\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espan\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003elinenos\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003einherit\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground-color\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003etransparent\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-left\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-right\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003etd\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003elinenos\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003especial\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#000000\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground-color\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ffffc0\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-left\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-right\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espan\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003elinenos\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003especial\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#000000\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground-color\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ffffc0\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-left\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003epadding-right\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"kt\"\u003epx\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehll\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground-color\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#49483e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#272822\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ec\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eerr\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ed007e\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ebackground-color\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#1e0010\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Error */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eesc\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Escape */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eg\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ek\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003el\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003en\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eo\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ff4689\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Operator */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ex\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Other */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ep\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Punctuation */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ech\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment.Hashbang */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecm\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment.Multiline */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment.Preproc */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecpf\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment.PreprocFile */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ec1\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment.Single */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecs\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Comment.Special */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egd\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ff4689\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Deleted */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ege\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efont-style\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eitalic\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Emph */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eges\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efont-weight\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003ebold\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efont-style\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003eitalic\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.EmphStrong */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egr\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Error */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egh\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Heading */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egi\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Inserted */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ego\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Output */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ff4689\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efont-weight\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003ebold\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Prompt */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egs\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003efont-weight\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003ebold\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Strong */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egu\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#959077\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Subheading */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003egt\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Generic.Traceback */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ekc\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword.Constant */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ekd\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword.Declaration */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ekn\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ff4689\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword.Namespace */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ekp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword.Pseudo */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ekr\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword.Reserved */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ekt\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Keyword.Type */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eld\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Date */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003em\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003es\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ena\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Attribute */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enb\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Builtin */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enc\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Class */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eno\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#66d9ef\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Constant */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003end\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Decorator */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eni\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Entity */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ene\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Exception */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enf\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Function */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enl\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Label */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enn\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Namespace */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003enx\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Other */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003epy\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Property */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ent\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ff4689\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Tag */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003env\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Variable */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eow\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ff4689\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Operator.Word */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003epm\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Punctuation.Marker */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ew\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Text.Whitespace */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003emb\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number.Bin */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003emf\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number.Float */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003emh\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number.Hex */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003emi\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number.Integer */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003emo\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number.Oct */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esa\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Affix */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esb\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Backtick */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esc\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Char */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003edl\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Delimiter */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esd\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Doc */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003es2\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Double */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ese\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Escape */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esh\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Heredoc */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esi\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Interpol */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esx\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Other */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003esr\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Regex */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003es1\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Single */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ess\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#e6db74\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.String.Symbol */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ebp\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Builtin.Pseudo */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003efm\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#a6e22e\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Function.Magic */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003evc\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Variable.Class */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003evg\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Variable.Global */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003evi\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Variable.Instance */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003evm\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#f8f8f2\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Name.Variable.Magic */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ehighlight\u003c/span\u003e \u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003eil\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"k\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mh\"\u003e#ae81ff\u003c/span\u003e \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"c\"\u003e/* Literal.Number.Integer.Long */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've been a long user of pygments, it's been the thing that injects `\u003cspans\u003e`\nwith funny little class names like `sc` and `si` into the code blocks of my\nwebsite.  I've even gone as far as implementing a [plugin for\nmd-it](https://github.com/WaylonWalker/markata/blob/main/markata/plugins/md_it_highlight_code.py),\nbut I had no idea how to re-style it.  I long ago got a theme that looked good\nenough from somewhere and just used it, maybe I pulled something from their\ndocs site and forgot.  Today I learned you can list all the themes easily from\nthe library itself, and render out new css.\n\n``` python\nfrom pygments.styles import get_all_styles\nlist(get_all_styles())\n# [\n#     'abap',\n#     'algol_nu',\n#     'algol',\n#     'arduino',\n#     'autumn',\n#     'borland',\n#     'bw',\n#     'colorful',\n#     'default',\n#     'dracula',\n#     'emacs',\n#     'friendly_grayscale',\n#     'friendly',\n#     'fruity',\n#     'github-dark',\n#     'gruvbox-dark',\n#     'gruvbox-light',\n#     'igor',\n#     'inkpot',\n#     'lightbulb',\n#     'lilypond',\n#     'lovelace',\n#     'manni',\n#     'material',\n#     'monokai',\n#     'murphy',\n#     'native',\n#     'nord-darker',\n#     'nord',\n#     'one-dark',\n#     'paraiso-dark',\n#     'paraiso-light',\n#     'pastie',\n#     'perldoc',\n#     'rainbow_dash',\n#     'rrt',\n#     'sas',\n#     'solarized-dark',\n#     'solarized-light',\n#     'staroffice',\n#     'stata-dark',\n#     'stata-light',\n#     'stata',\n#     'tango',\n#     'trac',\n#     'vim',\n#     'vs',\n#     'xcode',\n#     'zenburn'\n# ]\n```\n\n``` python\nfrom pygments.formatters import HtmlFormatter\nfrom pygments.styles import get_style_by_name\nstyle = get_style_by_name(\"monokai\")\nformatter = HtmlFormatter(style=style)\nprint(formatter.get_style_defs('.highlight'))\n```\n\nAnd now you get styles that you can add to your css and be any theme from the\nlist above.\n\n``` css\npre { line-height: 125%; }\ntd.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\nspan.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\ntd.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\nspan.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.highlight .hll { background-color: #49483e }\n.highlight { background: #272822; color: #f8f8f2 }\n.highlight .c { color: #959077 } /* Comment */\n.highlight .err { color: #ed007e; background-color: #1e0010 } /* Error */\n.highlight .esc { color: #f8f8f2 } /* Escape */\n.highlight .g { color: #f8f8f2 } /* Generic */\n.highlight .k { color: #66d9ef } /* Keyword */\n.highlight .l { color: #ae81ff } /* Literal */\n.highlight .n { color: #f8f8f2 } /* Name */\n.highlight .o { color: #ff4689 } /* Operator */\n.highlight .x { color: #f8f8f2 } /* Other */\n.highlight .p { color: #f8f8f2 } /* Punctuation */\n.highlight .ch { color: #959077 } /* Comment.Hashbang */\n.highlight .cm { color: #959077 } /* Comment.Multiline */\n.highlight .cp { color: #959077 } /* Comment.Preproc */\n.highlight .cpf { color: #959077 } /* Comment.PreprocFile */\n.highlight .c1 { color: #959077 } /* Comment.Single */\n.highlight .cs { color: #959077 } /* Comment.Special */\n.highlight .gd { color: #ff4689 } /* Generic.Deleted */\n.highlight .ge { color: #f8f8f2; font-style: italic } /* Generic.Emph */\n.highlight .ges { color: #f8f8f2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n.highlight .gr { color: #f8f8f2 } /* Generic.Error */\n.highlight .gh { color: #f8f8f2 } /* Generic.Heading */\n.highlight .gi { color: #a6e22e } /* Generic.Inserted */\n.highlight .go { color: #66d9ef } /* Generic.Output */\n.highlight .gp { color: #ff4689; font-weight: bold } /* Generic.Prompt */\n.highlight .gs { color: #f8f8f2; font-weight: bold } /* Generic.Strong */\n.highlight .gu { color: #959077 } /* Generic.Subheading */\n.highlight .gt { color: #f8f8f2 } /* Generic.Traceback */\n.highlight .kc { color: #66d9ef } /* Keyword.Constant */\n.highlight .kd { color: #66d9ef } /* Keyword.Declaration */\n.highlight .kn { color: #ff4689 } /* Keyword.Namespace */\n.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */\n.highlight .kr { color: #66d9ef } /* Keyword.Reserved */\n.highlight .kt { color: #66d9ef } /* Keyword.Type */\n.highlight .ld { color: #e6db74 } /* Literal.Date */\n.highlight .m { color: #ae81ff } /* Literal.Number */\n.highlight .s { color: #e6db74 } /* Literal.String */\n.highlight .na { color: #a6e22e } /* Name.Attribute */\n.highlight .nb { color: #f8f8f2 } /* Name.Builtin */\n.highlight .nc { color: #a6e22e } /* Name.Class */\n.highlight .no { color: #66d9ef } /* Name.Constant */\n.highlight .nd { color: #a6e22e } /* Name.Decorator */\n.highlight .ni { color: #f8f8f2 } /* Name.Entity */\n.highlight .ne { color: #a6e22e } /* Name.Exception */\n.highlight .nf { color: #a6e22e } /* Name.Function */\n.highlight .nl { color: #f8f8f2 } /* Name.Label */\n.highlight .nn { color: #f8f8f2 } /* Name.Namespace */\n.highlight .nx { color: #a6e22e } /* Name.Other */\n.highlight .py { color: #f8f8f2 } /* Name.Property */\n.highlight .nt { color: #ff4689 } /* Name.Tag */\n.highlight .nv { color: #f8f8f2 } /* Name.Variable */\n.highlight .ow { color: #ff4689 } /* Operator.Word */\n.highlight .pm { color: #f8f8f2 } /* Punctuation.Marker */\n.highlight .w { color: #f8f8f2 } /* Text.Whitespace */\n.highlight .mb { color: #ae81ff } /* Literal.Number.Bin */\n.highlight .mf { color: #ae81ff } /* Literal.Number.Float */\n.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */\n.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */\n.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */\n.highlight .sa { color: #e6db74 } /* Literal.String.Affix */\n.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */\n.highlight .sc { color: #e6db74 } /* Literal.String.Char */\n.highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */\n.highlight .sd { color: #e6db74 } /* Literal.String.Doc */\n.highlight .s2 { color: #e6db74 } /* Literal.String.Double */\n.highlight .se { color: #ae81ff } /* Literal.String.Escape */\n.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */\n.highlight .si { color: #e6db74 } /* Literal.String.Interpol */\n.highlight .sx { color: #e6db74 } /* Literal.String.Other */\n.highlight .sr { color: #e6db74 } /* Literal.String.Regex */\n.highlight .s1 { color: #e6db74 } /* Literal.String.Single */\n.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */\n.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */\n.highlight .fm { color: #a6e22e } /* Name.Function.Magic */\n.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */\n.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */\n.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */\n.highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */\n.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */\n```\n",
      "summary": "I've been a long user of pygments, it's been the thing that injects with funny little class names like and into the code blocks of my website. I've even gone...",
      "date_published": "2025-07-17T19:45:19Z",
      "date_modified": "2025-07-17T19:45:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/caelestia-dots-shell/",
      "url": "https://waylonwalker.com/caelestia-dots-shell/",
      "title": "⭐ caelestia-dots shell",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/caelestia-dots/shell\" 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\"\u003eshell\u003c/a\u003e by \u003ca href=\"https://github.com/caelestia-dots\" 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\"\u003ecaelestia-dots\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA very segsy desktop shell\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [shell](https://github.com/caelestia-dots/shell) by [caelestia-dots](https://github.com/caelestia-dots).\n\nA very segsy desktop shell\n",
      "summary": "Looking for inspiration? shell by caelestia-dots.",
      "date_published": "2025-07-16T00:32:16Z",
      "date_modified": "2025-07-16T00:32:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-751/",
      "url": "https://waylonwalker.com/thought-751/",
      "title": "💭 Quickshell",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://quickshell.org/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eQuickshell\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA fully user customizable desktop shell\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003equickshell · quickshell.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis has to be the most incredible looking Desktop experience I’ve ever seen, riced to the nines, more polished than macos, more features than kde plasma, this looks incredible and I want to try it and feel it.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://quickshell.org/assets/showcase/end4.mp4\"\u003ehttps://quickshell.org/assets/showcase/end4.mp4\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://quickshell.org/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eQuickshell\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA fully user customizable desktop shell\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003equickshell \u0026middot; quickshell.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis has to be the most incredible looking Desktop experience I've ever seen, riced to the nines, more polished than macos, more features than kde plasma, this looks incredible and I want to try it and feel it.\n\nhttps://quickshell.org/assets/showcase/end4.mp4\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://quickshell.org/",
      "date_published": "2025-07-16T00:30:48Z",
      "date_modified": "2025-07-16T00:30:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-15-notes/",
      "url": "https://waylonwalker.com/2025-07-15-notes/",
      "title": "2025-07-15 Notes",
      "content_html": "\u003cp\u003eI’m working on hyprland, one thing I am missing from my awesomewm setup is rofi\nlist all running windows.  Sometimes I put a browser instance in a different\nworkspace and I cant find it, especially if I’ve full screened something over\ntop of it.\u003c/p\u003e\n\u003ch2 id=\"first-pass\"\u003efirst pass \u003ca href=\"#first-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003elook for brave and go to it or make one\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/usr/bin/env bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eaddr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"s1\"\u003e\u0026#39;.[] | select(.class == \u0026#34;brave-browser\u0026#34;) | .address\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e head -n1\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003e -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$addr\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Focus the existing browser window\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"nv\"\u003e$addr\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Launch a new browser window\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\tbrave --password-store\u003cspan class=\"o\"\u003e=\u003c/span\u003ebasic \u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"second-pass\"\u003esecond pass \u003ca href=\"#second-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf there are more than one cycle between them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Get current window address\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_addr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl activewindow -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"s1\"\u003e\u0026#39;.address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Get all Brave window addresses\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"s1\"\u003e\u0026#39;.[] | select(.class == \u0026#34;brave-browser\u0026#34;) | .address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"si\"\u003e${#\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e 0\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# No Brave windows, launch it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\tbrave --password-store\u003cspan class=\"o\"\u003e=\u003c/span\u003ebasic \u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Find the index of the current window in brave_windows\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e i in \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e!brave_windows[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$current_addr\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nb\"\u003ebreak\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# If we\u0026#39;re already in a Brave window, switch to the next one (wrap around)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003ecurrent_index !\u003cspan class=\"o\"\u003e=\u003c/span\u003e -1\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nv\"\u003enext_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$((\u003c/span\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ecurrent_index \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e%\u003c/span\u003e num_windows\u003cspan class=\"k\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$next_index\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Not currently in a Brave window — focus the first one\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[0]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"third-pass\"\u003ethird pass \u003ca href=\"#third-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGeneralize it so that I can make keybindings for any app that I can figure out\nthe classname of and provide a start command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/usr/bin/env bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eset\u003c/span\u003e -euo pipefail\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Args\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003e1\u003c/span\u003e\u003cspan class=\"k\"\u003e:-\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eshift\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003estart_command\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$*\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$class\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$start_command\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Usage: \u003c/span\u003e\u003cspan class=\"nv\"\u003e$0\u003c/span\u003e\u003cspan class=\"s2\"\u003e \u0026lt;class\u0026gt; \u0026lt;start-command...\u0026gt;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Current active window\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_addr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl activewindow -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"s1\"\u003e\u0026#39;.address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# All windows with matching class\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r --arg class \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$class\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;.[] | select(.class == $class) | .address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"si\"\u003e${#\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e 0\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# None running — start it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eeval\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$start_command\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# See if currently focused window is in matching list\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e i in \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e!matching_windows[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$current_addr\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nb\"\u003ebreak\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Cycle to next window if already in one\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003ecurrent_index !\u003cspan class=\"o\"\u003e=\u003c/span\u003e -1\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nv\"\u003enext_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$((\u003c/span\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ecurrent_index \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e%\u003c/span\u003e num_windows\u003cspan class=\"k\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$next_index\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Not in one — focus first\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[0]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"finding-the-classname\"\u003efinding the classname \u003ca href=\"#finding-the-classname\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ hyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep kitty\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;class\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;kitty\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;initialClass\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;kitty\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;initialTitle\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;kitty\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm working on hyprland, one thing I am missing from my awesomewm setup is rofi\nlist all running windows.  Sometimes I put a browser instance in a different\nworkspace and I cant find it, especially if I've full screened something over\ntop of it.\n\n\n## first pass \n\nlook for brave and go to it or make one\n\n``` bash\n#!/usr/bin/env bash\n\naddr=$(hyprctl clients -j | jq -r \\\n\t'.[] | select(.class == \"brave-browser\") | .address' | head -n1)\n\nif [ -n \"$addr\" ]; then\n\t# Focus the existing browser window\n\thyprctl dispatch focuswindow address:$addr\nelse\n\t# Launch a new browser window\n\tbrave --password-store=basic \u0026\nfi\n```\n\n## second pass\n\nIf there are more than one cycle between them.\n\n``` bash\n# Get current window address\ncurrent_addr=$(hyprctl activewindow -j | jq -r '.address')\n\n# Get all Brave window addresses\nbrave_windows=($(hyprctl clients -j | jq -r '.[] | select(.class == \"brave-browser\") | .address'))\n\nnum_windows=${#brave_windows[@]}\n\nif ((num_windows == 0)); then\n\t# No Brave windows, launch it\n\tbrave --password-store=basic \u0026\n\texit\nfi\n\n# Find the index of the current window in brave_windows\ncurrent_index=-1\nfor i in \"${!brave_windows[@]}\"; do\n\tif [[ \"${brave_windows[$i]}\" == \"$current_addr\" ]]; then\n\t\tcurrent_index=$i\n\t\tbreak\n\tfi\ndone\n\n# If we're already in a Brave window, switch to the next one (wrap around)\nif ((current_index != -1)); then\n\tnext_index=$(((current_index + 1) % num_windows))\n\thyprctl dispatch focuswindow address:${brave_windows[$next_index]}\nelse\n\t# Not currently in a Brave window — focus the first one\n\thyprctl dispatch focuswindow address:${brave_windows[0]}\nfi\n```\n\n## third pass\n\nGeneralize it so that I can make keybindings for any app that I can figure out\nthe classname of and provide a start command.\n\n``` bash\n#!/usr/bin/env bash\n\nset -euo pipefail\n\n# Args\nclass=\"${1:-}\"\nshift\nstart_command=\"$*\"\n\nif [[ -z \"$class\" || -z \"$start_command\" ]]; then\n\techo \"Usage: $0 \u003cclass\u003e \u003cstart-command...\u003e\"\n\texit 1\nfi\n\n# Current active window\ncurrent_addr=$(hyprctl activewindow -j | jq -r '.address')\n\n# All windows with matching class\nmatching_windows=($(hyprctl clients -j | jq -r --arg class \"$class\" '.[] | select(.class == $class) | .address'))\n\nnum_windows=${#matching_windows[@]}\n\nif ((num_windows == 0)); then\n\t# None running — start it\n\teval \"$start_command\" \u0026\n\texit\nfi\n\n# See if currently focused window is in matching list\ncurrent_index=-1\nfor i in \"${!matching_windows[@]}\"; do\n\tif [[ \"${matching_windows[$i]}\" == \"$current_addr\" ]]; then\n\t\tcurrent_index=$i\n\t\tbreak\n\tfi\ndone\n\n# Cycle to next window if already in one\nif ((current_index != -1)); then\n\tnext_index=$(((current_index + 1) % num_windows))\n\thyprctl dispatch focuswindow address:${matching_windows[$next_index]}\nelse\n\t# Not in one — focus first\n\thyprctl dispatch focuswindow address:${matching_windows[0]}\nfi\n\n```\n\n## finding the classname\n\n``` bash\n❯ hyprctl clients -j | jq | grep kitty\n\n    \"class\": \"kitty\",\n    \"initialClass\": \"kitty\",\n    \"initialTitle\": \"kitty\",\n```\n",
      "summary": "I'm working on hyprland, one thing I am missing from my awesomewm setup is rofi list all running windows. Sometimes I put a browser instance in a different...",
      "date_published": "2025-07-15T10:57:37Z",
      "date_modified": "2025-07-15T10:57:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-750/",
      "url": "https://waylonwalker.com/thought-750/",
      "title": "💭 Stop Complaining About Ubuntu...Just Switch To Arch Already! -...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"HbBF-bmGe2I\" title=\"Stop Complaining About Ubuntu...Just Switch To Arch Already!\" playlabel=\"Play: Stop Complaining About Ubuntu...Just Switch To Arch Already!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDT says it so well in this video, I’ve never really been one to shit on software projects, with maybe a VERY small handful of exceptions.  The shitting on ubuntu always rubbed me wrong, shitting on flatpak and snap I never got, shitting on systemd because of Leonard Pottering I never got, DT puts it in such good words here.  If you don’t like it you are probably not the target audience.\u003c/p\u003e\n\u003cp\u003eIf Ubuntu is too bloated, don’t try to debloat it, this is not windows, we have options, Ubuntu is one option and so much is intertwined together in something like Ubuntu if you think you want to try to \u003cem\u003e“debloat”\u003c/em\u003e it good luck.  If you have a problem with Snaps, this is probably not for you.  You are probably looking for a distro with more control, probably something that you choose everything for.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"HbBF-bmGe2I\" title=\"Stop Complaining About Ubuntu...Just Switch To Arch Already!\" playlabel=\"Play: Stop Complaining About Ubuntu...Just Switch To Arch Already!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDT says it so well in this video, I've never really been one to shit on software projects, with maybe a VERY small handful of exceptions.  The shitting on ubuntu always rubbed me wrong, shitting on flatpak and snap I never got, shitting on systemd because of Leonard Pottering I never got, DT puts it in such good words here.  If you don't like it you are probably not the target audience.  \n\nIf Ubuntu is too bloated, don't try to debloat it, this is not windows, we have options, Ubuntu is one option and so much is intertwined together in something like Ubuntu if you think you want to try to _\"debloat\"_ it good luck.  If you have a problem with Snaps, this is probably not for you.  You are probably looking for a distro with more control, probably something that you choose everything for.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=HbBF-bmGe2I",
      "date_published": "2025-07-15T01:48:46Z",
      "date_modified": "2025-07-15T01:48:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-12-notes/",
      "url": "https://waylonwalker.com/2025-07-12-notes/",
      "title": "2025-07-12 Notes",
      "content_html": "\u003cp\u003eStarting the polkit agent for hyperland arch to handle permission elevation for\ndesktop applications.\u003c/p\u003e\n\u003cdiv class=\"admonition error\"\u003e\n\u003cp class=\"admonition-title\"\u003eError\u003c/p\u003e\n\u003cp\u003eAn error occurred while accessing ‘bazzite-nvidia_razorcrest’, the system\nresponded: Cannot request authentication for this action. The PolicyKit\nauthentication system appears to be not available.: Not authorized to\nperform operation\u003c/p\u003e\n\u003c/div\u003e\n\u003cpre\u003e\u003ccode class=\"language-config\"\u003eexec-once = waybar \u0026amp; hyprpaper \u0026amp; $terminal \u0026amp; polkit \u0026amp; swaync \u0026amp; /usr/lib/polkit-kde-authentication-agent-1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e!!! GIPPITY\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e🧠 Why this happens:\nPolkit handles permission elevation for desktop apps.\n\nDolphin uses udisks2 to mount drives, which asks Polkit for permission.\n\nIf you don\u0026#39;t run a Polkit agent, you won\u0026#39;t be able to authorize mount actions from the GUI.\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003cdiv class=\"admonition error\"\u003e\n\u003cp class=\"admonition-title\"\u003eError\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e❯ just build\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eError: configure storage: kernel does not support overlay fs: ‘overlay’ is not supported over btrfs at “/home/waylon/.local/share/containers/storage/overlay”: backing file system is unsupported for this graph driver\nerror: Recipe build failed with exit code 125\u003c/p\u003e\n\u003c/div\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S fuse-overlayfs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir -p ~/.config/containers\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim ~/.config/containers/storage.conf\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003estorage\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edriver\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;overlay\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003estorage\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eoptions\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003emount_program\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/usr/bin/fuse-overlayfs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp\u003eWyatt and I tried 3 times to beat the ice tower on our second run of Cat Quest\nIII and failed, its tough.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.mp4\" class=\"glightbox-link\" aria-label=\"ice-tower-fail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.mp4\" type=\"video/mp4\"\u003eice-tower-fail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nStarting the polkit agent for hyperland arch to handle permission elevation for\ndesktop applications.\n\n!!! error \n\n    An error occurred while accessing 'bazzite-nvidia_razorcrest', the system\n    responded: Cannot request authentication for this action. The PolicyKit\n    authentication system appears to be not available.: Not authorized to\n    perform operation\n\n``` config\nexec-once = waybar \u0026 hyprpaper \u0026 $terminal \u0026 polkit \u0026 swaync \u0026 /usr/lib/polkit-kde-authentication-agent-1\n```\n\n!!! GIPPITY\n\n    🧠 Why this happens:\n    Polkit handles permission elevation for desktop apps.\n\n    Dolphin uses udisks2 to mount drives, which asks Polkit for permission.\n\n    If you don't run a Polkit agent, you won't be able to authorize mount actions from the GUI.\n\n---\n\n\n!!! error\n    ❯ just build\n    Error: configure storage: kernel does not support overlay fs: 'overlay' is not supported over btrfs at \"/home/waylon/.local/share/containers/storage/overlay\": backing file system is unsupported for this graph driver\n    error: Recipe build failed with exit code 125\n\n``` bash\nparu -S fuse-overlayfs\n```\n\n``` bash\nmkdir -p ~/.config/containers\nnvim ~/.config/containers/storage.conf\n```\n\n``` toml\n[storage]\ndriver = \"overlay\"\n\n[storage.options]\nmount_program = \"/usr/bin/fuse-overlayfs\"\n```\n\n---\n\nWyatt and I tried 3 times to beat the ice tower on our second run of Cat Quest\nIII and failed, its tough.\n\n![ice-tower-fail.mp4](https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.mp4)\n",
      "summary": "Starting the polkit agent for hyperland arch to handle permission elevation for desktop applications.",
      "date_published": "2025-07-12T15:19:20Z",
      "date_modified": "2025-07-12T15:19:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-747/",
      "url": "https://waylonwalker.com/thought-747/",
      "title": "💭 Lab Update | Cloudy with a Chance of Tech",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.thomaswimprine.com/blog/2025-07-07-Lab-Update/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://blog.thomaswimprine.com/assets/img/blog/Kub_gnomes_building_cluster_blog.jpg\" alt=\"Lab Update — Update on the lab setup and what I’ve been working on recently.\" loading=\"lazy\"/ data-glightbox=\"description: Lab Update — Update on the lab setup and what I’ve been working on recently.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLab Update\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUpdate on the lab setup and what I’ve been working on recently.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eCloudy with a Chance of Tech · blog.thomaswimprine.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAlways enjoy a good read through someone elses setup.  I appreciate the desire for pi clusters they are cute, they seem cheap, but feel a bit overrated (at least for those of us with relatively cheap electricity).  I love seeing the refurb “tiny desktops” getting a second useful life in a \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e after they have serve their useful life in the corporate world sitting behind the monitor of some reception desk.  These things rock, they are underrated, x86_64, not ARM, so they just work.  Until ARM becomes \u003cem\u003emore\u003c/em\u003e normalized in the datacenter this is where its at.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.thomaswimprine.com/blog/2025-07-07-Lab-Update/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://blog.thomaswimprine.com/assets/img/blog/Kub_gnomes_building_cluster_blog.jpg\" alt=\"Lab Update — Update on the lab setup and what I’ve been working on recently.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eLab Update\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUpdate on the lab setup and what I’ve been working on recently.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eCloudy with a Chance of Tech \u0026middot; blog.thomaswimprine.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAlways enjoy a good read through someone elses setup.  I appreciate the desire for pi clusters they are cute, they seem cheap, but feel a bit overrated (at least for those of us with relatively cheap electricity).  I love seeing the refurb \"tiny desktops\" getting a second useful life in a homelab after they have serve their useful life in the corporate world sitting behind the monitor of some reception desk.  These things rock, they are underrated, x86_64, not ARM, so they just work.  Until ARM becomes _more_ normalized in the datacenter this is where its at.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.thomaswimprine.com/blog/2025-07-07-Lab-Update/",
      "date_published": "2025-07-12T02:16:40Z",
      "date_modified": "2025-07-12T02:16:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-11-notes/",
      "url": "https://waylonwalker.com/2025-07-11-notes/",
      "title": "2025-07-11 Notes",
      "content_html": "\u003cp\u003eContinuing my exploration of \u003ca href=\"https://searchcraft.com\"\u003eSearchcraft\u003c/a\u003e I loaded\nall of my blog into it.  It fully posted, indexed, and had my content ready for\nsearch in a literal blink.  It was like the experience of python devs running\nruff for the first time, and having the no way you just did that experience.\u003c/p\u003e\n\u003cp\u003eOk so semantic search is so freaking cool, does not compare to fuzzy search at\nall.  I don’t have to include parts of the title or something to find a post.\nI don’t have to spell things right, I dont even have to get the thing right.  I\ncan ask “create a mycraft server in kibinerers” and it takes me to the post\nabout running Minecraft in containers.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003easyncio\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ehttpx\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eSEARCHCRAFT_URL\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;http://0.0.0.0:8000\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eINDEX_NAME\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;creation_test\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eupload_documents\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003edocuments\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eslug\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;body\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003easync\u003c/span\u003e \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003ehttpx\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eClient\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eurl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eSEARCHCRAFT_URL\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/index/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eINDEX_NAME\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/documents\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003edocuments\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eraise_for_status\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Upload:\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# Commit changes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecommit_url\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eSEARCHCRAFT_URL\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/index/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eINDEX_NAME\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecommit_resp\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecommit_url\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecommit_resp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eraise_for_status\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Committed:\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecommit_resp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eupload_documents\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nContinuing my exploration of [Searchcraft](https://searchcraft.com) I loaded\nall of my blog into it.  It fully posted, indexed, and had my content ready for\nsearch in a literal blink.  It was like the experience of python devs running\nruff for the first time, and having the no way you just did that experience.\n\nOk so semantic search is so freaking cool, does not compare to fuzzy search at\nall.  I don't have to include parts of the title or something to find a post.\nI don't have to spell things right, I dont even have to get the thing right.  I\ncan ask \"create a mycraft server in kibinerers\" and it takes me to the post\nabout running Minecraft in containers.\n\n``` python\nimport asyncio\nimport httpx\n\nSEARCHCRAFT_URL = \"http://0.0.0.0:8000\"\nINDEX_NAME = \"creation_test\"\n\n\ndef upload_documents(m):\n    documents = [\n        {\n            \"id\": post.slug,\n            \"title\": post.title,\n            \"body\": post.content,\n        }\n        for post in m.posts\n    ]\n\n    async with httpx.Client() as client:\n        url = f\"{SEARCHCRAFT_URL}/index/{INDEX_NAME}/documents\"\n        response = client.post(url, json=documents)\n        response.raise_for_status()\n        print(\"Upload:\", response.json())\n\n        # Commit changes\n        commit_url = f\"{SEARCHCRAFT_URL}/index/{INDEX_NAME}/commit\"\n        commit_resp = client.post(commit_url)\n        commit_resp.raise_for_status()\n        print(\"Committed:\", commit_resp.json())\n\n\nfrom markata import Markata\n\nm = Markata()\nupload_documents(m)\n```\n\n\n",
      "summary": "Continuing my exploration of Searchcraft I loaded all of my blog into it. It fully posted, indexed, and had my content ready for search in a literal blink....",
      "date_published": "2025-07-11T08:06:23Z",
      "date_modified": "2025-07-11T08:06:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-10-notes/",
      "url": "https://waylonwalker.com/2025-07-10-notes/",
      "title": "2025-07-10 Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=VFlLRH3ifcM\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/VFlLRH3ifcM/maxresdefault.jpg\" alt=\"Lightspeed search built for devs | Don MacKinnon on the future of content search\"/ data-glightbox=\"description: Lightspeed search built for devs | Don MacKinnon on the future of content search\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSpent the day working through \u003ca href=\"https://www.youtube.com/watch?v=VFlLRH3ifcM\" 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\"\u003eLightspeed search built for devs | Don MacKinnon\non the future of content search\u003c/a\u003e,\nthis episode of the changelog about searchcraft.  It was really interesting,\u003c/p\u003e\n\u003cp\u003eThen found this demo loading all of wikipedia and getting really sick search\nresults out of it!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=SjuPn6_yl2s\" 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\"\u003ehttps://www.youtube.com/watch?v=SjuPn6_yl2s\u003c/a\u003e\u003c/p\u003e\n\u003chr/\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epodman run --name searchcraft -p 8000:8000 searchcraftinc/searchcraft-core:latest\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create an index\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST -H \u003cspan class=\"s2\"\u003e\u0026#34;Content-Type: application/json\u0026#34;\u003c/span\u003e --data \u003cspan class=\"s1\"\u003e\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;index\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;name\u0026#34;: \u0026#34;creation_test\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;search_fields\u0026#34;: [\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    ],\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;fields\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;id\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;required\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;indexed\u0026#34;: false\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;created_at\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;datetime\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;indexed\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;active\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;bool\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;rating\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;f64\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;reviews\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;u64\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;tags\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;multi\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;category\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;facet\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;formats\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;facet\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;multi\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;url\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;weight_multipliers\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;: 2,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;: 0.7\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u003c/span\u003e http://0.0.0.0:8000/index\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# put a document in the index\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST -H \u003cspan class=\"s2\"\u003e\u0026#34;Content-Type: application/json\u0026#34;\u003c/span\u003e   --data \u003cspan class=\"s1\"\u003e\u0026#39;{\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;document\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;id\u0026#34;: \u0026#34;doc-001\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;created_at\u0026#34;: \u0026#34;2024-07-10T12:00:00Z\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;: \u0026#34;Hello World\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;: \u0026#34;This is your first Searchcraft document!\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;url\u0026#34;: \u0026#34;https://searchcraft.com\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;active\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;rating\u0026#34;: 4.5,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;reviews\u0026#34;: 3,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;tags\u0026#34;: [\u0026#34;demo\u0026#34;, \u0026#34;test\u0026#34;],\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;category\u0026#34;: \u0026#34;/demo\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;formats\u0026#34;: [\u0026#34;/pdf\u0026#34;, \u0026#34;/markdown\u0026#34;]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  }\u0026#39;\u003c/span\u003e http://0.0.0.0:8000/document/creation_test\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# commit the changes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST http://0.0.0.0:8000/index/creation_test/commit\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e## search\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST -H \u003cspan class=\"s2\"\u003e\u0026#34;Content-Type: application/json\u0026#34;\u003c/span\u003e --data \u003cspan class=\"s1\"\u003e\u0026#39;{\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;limit\u0026#34;: 5,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;offset\u0026#34;: 0,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;query\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;fuzzy\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;ctx\u0026#34;: \u0026#34;searchcraft\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e}\u0026#39;\u003c/span\u003e http://0.0.0.0:8000/index/creation_test/search\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eresults\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e200\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;data\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;hits\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;doc\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;doc-001\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;formats\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;/pdf\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;/markdown\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;active\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;reviews\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;tags\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;demo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;test\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;created_at\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;2024-07-10T12:00:00Z\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;category\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/demo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;rating\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e4.5\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Hello World\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;body\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;This is your first Searchcraft document!\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;document_id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;13964682816361504761\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;score\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e0.90137744\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;source_index\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;creation_test\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;time_taken\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e0.000679577\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;facets\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;category\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/demo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;formats\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/markdown\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/pdf\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n[![Lightspeed search built for devs | Don MacKinnon on the future of content search](https://i.ytimg.com/vi/VFlLRH3ifcM/maxresdefault.jpg)](https://www.youtube.com/watch?v=VFlLRH3ifcM)\n\nSpent the day working through [Lightspeed search built for devs | Don MacKinnon\non the future of content search](https://www.youtube.com/watch?v=VFlLRH3ifcM),\nthis episode of the changelog about searchcraft.  It was really interesting,\n\nThen found this demo loading all of wikipedia and getting really sick search\nresults out of it!\n\n\u003chttps://www.youtube.com/watch?v=SjuPn6_yl2s\u003e\n\n---\n\n``` bash\npodman run --name searchcraft -p 8000:8000 searchcraftinc/searchcraft-core:latest\n```\n\n``` bash\n# create an index\ncurl -X POST -H \"Content-Type: application/json\" --data '\n{\n  \"index\": {\n    \"name\": \"creation_test\",\n    \"search_fields\": [\n      \"title\",\n      \"body\"\n    ],\n    \"fields\": {\n      \"id\": {\n        \"type\": \"text\",\n        \"required\": true,\n        \"stored\": true,\n        \"indexed\": false\n      },\n      \"created_at\": {\n        \"type\": \"datetime\",\n        \"fast\": true,\n        \"stored\": true,\n        \"indexed\": true\n      },\n      \"title\": {\n        \"type\": \"text\",\n        \"stored\": true\n      },\n      \"body\": {\n        \"type\": \"text\",\n        \"stored\": true\n      },\n      \"active\": {\n        \"type\": \"bool\",\n        \"fast\": true,\n        \"stored\": true\n      },\n      \"rating\": {\n        \"type\": \"f64\",\n        \"stored\": true,\n        \"fast\": true\n      },\n      \"reviews\": {\n        \"type\": \"u64\",\n        \"stored\": true,\n        \"fast\": true\n      },\n      \"tags\": {\n        \"type\": \"text\",\n        \"stored\": true,\n        \"multi\": true\n      },\n      \"category\": {\n        \"type\": \"facet\",\n        \"stored\": true\n      },\n      \"formats\": {\n        \"type\": \"facet\",\n        \"stored\": true,\n        \"multi\": true\n      }\n      \"url\": {\n        \"type\": \"text\",\n        \"stored\": true\n      }\n    },\n    \"weight_multipliers\": {\n      \"title\": 2,\n      \"body\": 0.7\n    }\n\n  }\n}\n' http://0.0.0.0:8000/index\n\n\n# put a document in the index\ncurl -X POST -H \"Content-Type: application/json\"   --data '{\n    \"document\": {\n      \"id\": \"doc-001\",\n      \"created_at\": \"2024-07-10T12:00:00Z\",\n      \"title\": \"Hello World\",\n      \"body\": \"This is your first Searchcraft document!\",\n      \"url\": \"https://searchcraft.com\",\n      \"active\": true,\n      \"rating\": 4.5,\n      \"reviews\": 3,\n      \"tags\": [\"demo\", \"test\"],\n      \"category\": \"/demo\",\n      \"formats\": [\"/pdf\", \"/markdown\"]\n    }\n  }' http://0.0.0.0:8000/document/creation_test\n\n# commit the changes\ncurl -X POST http://0.0.0.0:8000/index/creation_test/commit\n\n## search\ncurl -X POST -H \"Content-Type: application/json\" --data '{\n  \"limit\": 5,\n  \"offset\": 0,\n  \"query\": {\n    \"fuzzy\": {\n      \"ctx\": \"searchcraft\"\n    }\n  }\n}' http://0.0.0.0:8000/index/creation_test/search\n```\n\nresults\n\n``` json\n{\n  \"status\": 200,\n  \"data\": {\n    \"hits\": [\n      {\n        \"doc\": {\n          \"id\": \"doc-001\",\n          \"formats\": [\n            \"/pdf\",\n            \"/markdown\"\n          ],\n          \"active\": true,\n          \"reviews\": 3,\n          \"tags\": [\n            \"demo\",\n            \"test\"\n          ],\n          \"created_at\": \"2024-07-10T12:00:00Z\",\n          \"category\": \"/demo\",\n          \"rating\": 4.5,\n          \"title\": \"Hello World\",\n          \"body\": \"This is your first Searchcraft document!\"\n        },\n        \"document_id\": \"13964682816361504761\",\n        \"score\": 0.90137744,\n        \"source_index\": \"creation_test\"\n      }\n    ],\n    \"count\": 1,\n    \"time_taken\": 0.000679577,\n    \"facets\": [\n      {\n        \"category\": [\n          {\n            \"path\": \"/demo\",\n            \"count\": 1\n          }\n        ]\n      },\n      {\n        \"formats\": [\n          {\n            \"path\": \"/markdown\",\n            \"count\": 1\n          },\n          {\n            \"path\": \"/pdf\",\n            \"count\": 1\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n",
      "summary": "[](https://www.youtube.com/watch?v=VFlLRH3ifcM)",
      "date_published": "2025-07-10T20:10:58Z",
      "date_modified": "2025-07-10T20:10:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-744/",
      "url": "https://waylonwalker.com/thought-744/",
      "title": "💭 Notes – 17:00 Wed 9 Jul 2025 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-07-09T17:00Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 17:00 Wed 9 Jul 2025 — Notes – 17:00 Wed 9 Jul 2025\" loading=\"lazy\"/ data-glightbox=\"description: Notes – 17:00 Wed 9 Jul 2025 — Notes – 17:00 Wed 9 Jul 2025\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 17:00 Wed 9 Jul 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 17:00 Wed 9 Jul 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eEnjoying watching David bring together his rss reader day by day. Excited to see where it goes.  Im trying to get better at dropping notes like this without a ton of context, without needing to be right, just a note of whats on my mind and what I’m doing.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-07-09T17:00Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 17:00 Wed 9 Jul 2025 — Notes – 17:00 Wed 9 Jul 2025\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 17:00 Wed 9 Jul 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 17:00 Wed 9 Jul 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nEnjoying watching David bring together his rss reader day by day. Excited to see where it goes.  Im trying to get better at dropping notes like this without a ton of context, without needing to be right, just a note of whats on my mind and what I'm doing.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/notes/2025-07-09T17:00Z/",
      "date_published": "2025-07-09T21:35:23Z",
      "date_modified": "2025-07-09T21:35:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-743/",
      "url": "https://waylonwalker.com/thought-743/",
      "title": "💭 uv cache prune",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Jul/8/uv-cache-prune/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003euv cache prune\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf you\u0026#39;re running low on disk space and are a uv user, don\u0026#39;t forget about uv cache prune: uv cache prune removes all unused cache entries. For example, the cache …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGood point to check on your uv cache if you are running low on disk space.  I checked mine today, and it wasn’t too bad so I left it alone.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edu -sh \u003cspan class=\"sb\"\u003e`\u003c/span\u003euv cache dir\u003cspan class=\"sb\"\u003e`\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/Jul/8/uv-cache-prune/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003euv cache prune\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf you\u0026#39;re running low on disk space and are a uv user, don\u0026#39;t forget about uv cache prune: uv cache prune removes all unused cache entries. For example, the cache …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGood point to check on your uv cache if you are running low on disk space.  I checked mine today, and it wasn't too bad so I left it alone.\n\n``` bash\ndu -sh `uv cache dir`\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/Jul/8/uv-cache-prune/#atom-everything",
      "date_published": "2025-07-09T19:41:13Z",
      "date_modified": "2025-07-09T19:41:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought",
        "uv"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-09-notes/",
      "url": "https://waylonwalker.com/2025-07-09-notes/",
      "title": "2025-07-09 Notes",
      "content_html": "\u003cp\u003eWhat a nightmare this glossary plugin turns out to be, it broke my site.  I had\nit really close, then one more change asked for to the llm, an LGTM and did not\nlook close, it rewrote the whole thing and started rendering markdown with its\nown renderer not my configured markdown renderer.  Its close to working not but\nmoved to post_render and using \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e/beautifulsoup rather than the raw markdown.\u003c/p\u003e\n",
      "content_text": "\n\nWhat a nightmare this glossary plugin turns out to be, it broke my site.  I had\nit really close, then one more change asked for to the llm, an LGTM and did not\nlook close, it rewrote the whole thing and started rendering markdown with its\nown renderer not my configured markdown renderer.  Its close to working not but\nmoved to post_render and using html/beautifulsoup rather than the raw markdown.\n",
      "summary": "What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...",
      "date_published": "2025-07-09T08:14:47Z",
      "date_modified": "2025-07-09T08:14:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-741/",
      "url": "https://waylonwalker.com/thought-741/",
      "title": "💭 omarchy/install/webapps.sh at master · basecamp/omarchy",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/basecamp/omarchy/blob/master/install/webapps.sh\" class=\"glightbox-link\" aria-label=\"https://github.com/basecamp/omarchy/blob/master/install/webapps.sh\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/basecamp/omarchy/blob/master/install/webapps.sh\" alt=\"https://github.com/basecamp/omarchy/blob/master/install/webapps.sh\"/ data-glightbox=\"description: https://github.com/basecamp/omarchy/blob/master/install/webapps.sh\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI’m digging these web2app’s from DHH’s omarchy for setting up an opinionated archlinux hyprland.  This gives a way to quickly open a web app as an app either with a hotkey or run launcher in its own dedicated window that you can put on it’s own workspace.  I really like a workflow of keeping one window per workspace on one monitor and I can quickly navigate between apps with a single hotkey.  This gives you the power to switch through things like chat, terminal, browser, steam game with blazing speed from the keybaord, no clicking no searching, just going directly to it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/basecamp/omarchy/blob/master/install/webapps.sh](/static/https://github.com/basecamp/omarchy/blob/master/install/webapps.sh)\n\nI'm digging these web2app's from DHH's omarchy for setting up an opinionated archlinux hyprland.  This gives a way to quickly open a web app as an app either with a hotkey or run launcher in its own dedicated window that you can put on it's own workspace.  I really like a workflow of keeping one window per workspace on one monitor and I can quickly navigate between apps with a single hotkey.  This gives you the power to switch through things like chat, terminal, browser, steam game with blazing speed from the keybaord, no clicking no searching, just going directly to it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/basecamp/omarchy/blob/master/install/webapps.sh",
      "date_published": "2025-07-08T18:02:18Z",
      "date_modified": "2025-07-08T18:02:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "archlinux",
        "dev",
        "hyprland",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/kyantech-palmr/",
      "url": "https://waylonwalker.com/kyantech-palmr/",
      "title": "⭐ kyantech Palmr",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/kyantech\" 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\"\u003ekyantech\u003c/a\u003e and their project \u003ca href=\"https://github.com/kyantech/Palmr\" 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\"\u003ePalmr\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e🌴 Palmr. is an open-source file-sharing platform focused on privacy and security. It enables users to upload, manage, and share files with features like password protection, custom links, and access control without tracking or limitations. Designed for seamless and secure sharing, Palmr. is completely free.\u003c/p\u003e\n",
      "content_text": "\nCheck out [kyantech](https://github.com/kyantech) and their project [Palmr](https://github.com/kyantech/Palmr).\n\n🌴 Palmr. is an open-source file-sharing platform focused on privacy and security. It enables users to upload, manage, and share files with features like password protection, custom links, and access control without tracking or limitations. Designed for seamless and secure sharing, Palmr. is completely free.\n",
      "summary": "Check out kyantech and their project Palmr.",
      "date_published": "2025-07-08T13:56:21Z",
      "date_modified": "2025-07-08T13:56:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-08-notes/",
      "url": "https://waylonwalker.com/2025-07-08-notes/",
      "title": "2025-07-08 Notes",
      "content_html": "\u003cp\u003eSetting up the hyprland run launcher to not be case sensitive.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003e$menu\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e wofi --show drun --insensitive\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n",
      "content_text": "\nSetting up the hyprland run launcher to not be case sensitive.\n\n\n``` bash\n$menu = wofi --show drun --insensitive\n```\n\n---\n",
      "summary": "Setting up the hyprland run launcher to not be case sensitive.",
      "date_published": "2025-07-08T11:27:07Z",
      "date_modified": "2025-07-08T11:27:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-07-notes/",
      "url": "https://waylonwalker.com/2025-07-07-notes/",
      "title": "2025-07-07 Notes",
      "content_html": "\u003cp\u003eleaning into the rediculous rainbow borders instead of getting rid of them in hyprland.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-conf\"\u003ecol.active_border = rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) 45deg\ncol.inactive_border = rgba(111111aa) rgba(2a2a2aaa) rgba(111111aa) rgba(fafafaaa) rgba(fafafaaa) rgba(fafafaaa) rgba(111111aa) rgba(2a2a2aaa) 90deg\n\u003c/code\u003e\u003c/pre\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/abe9fec8-ce1c-4fdd-8975-2667f87df9ba.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/abe9fec8-ce1c-4fdd-8975-2667f87df9ba.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nleaning into the rediculous rainbow borders instead of getting rid of them in hyprland.\n\n``` conf\ncol.active_border = rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) 45deg\ncol.inactive_border = rgba(111111aa) rgba(2a2a2aaa) rgba(111111aa) rgba(fafafaaa) rgba(fafafaaa) rgba(fafafaaa) rgba(111111aa) rgba(2a2a2aaa) 90deg\n```\n\n![image](https://dropper.waylonwalker.com/api/file/abe9fec8-ce1c-4fdd-8975-2667f87df9ba.webp)\n",
      "summary": "leaning into the rediculous rainbow borders instead of getting rid of them in hyprland.",
      "date_published": "2025-07-07T23:13:36Z",
      "date_modified": "2025-07-07T23:13:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-738/",
      "url": "https://waylonwalker.com/thought-738/",
      "title": "💭 GitHub - chase/awrit: A full graphical web browser for Kitty t...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/chase/awrit\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/68000d88a85a3e8136639a3b27680d53a59b90a33063e1fa45db4e55f1e41d12/chase/awrit\" alt=\"GitHub - chase/awrit: A full graphical web browser for Kitty terminal with mouse and keyboard support — A full graphical web browser for Kitty terminal with mouse and keyboard support - chase/awrit\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - chase/awrit: A full graphical web browser for Kitty terminal with mouse and keyboard support — A full graphical web browser for Kitty terminal with mouse and keyboard support - chase/awrit\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - chase/awrit: A full graphical web browser for Kitty terminal with mouse and keyboard support\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA full graphical web browser for Kitty terminal with mouse and keyboard support - chase/awrit\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eawrit is a full graphical browser that runs inside of kitty.  I’ve moved on some of my machines away from kitty as the maintainer has seemed so hostile and there are other great therminals out there, but I’m going to give this a go.  I have kitty running on my hyprland setup as it is the default anyways.  It is actual chromium rendering to a kitty graphics protocol.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/chase/awrit\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/68000d88a85a3e8136639a3b27680d53a59b90a33063e1fa45db4e55f1e41d12/chase/awrit\" alt=\"GitHub - chase/awrit: A full graphical web browser for Kitty terminal with mouse and keyboard support — A full graphical web browser for Kitty terminal with mouse and keyboard support - chase/awrit\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - chase/awrit: A full graphical web browser for Kitty terminal with mouse and keyboard support\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA full graphical web browser for Kitty terminal with mouse and keyboard support - chase/awrit\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nawrit is a full graphical browser that runs inside of kitty.  I've moved on some of my machines away from kitty as the maintainer has seemed so hostile and there are other great therminals out there, but I'm going to give this a go.  I have kitty running on my hyprland setup as it is the default anyways.  It is actual chromium rendering to a kitty graphics protocol.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/chase/awrit",
      "date_published": "2025-07-07T17:57:42Z",
      "date_modified": "2025-07-07T17:57:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "terminal",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/tmux-clipboard-on-hyprland/",
      "url": "https://waylonwalker.com/tmux-clipboard-on-hyprland/",
      "title": "tmux clipboard on hyprland",
      "content_html": "\u003cp\u003eSmooth clipboard settings for tmux is critical for my workflow.  I’m often\ngrabbing snippets of terminal output to paste into team chats, blog posts, or\nllm prompts.  Admittedly, I’m often doing this with the mouse, unless it’s\ncoming from neovim, which I generally do with motions.  Moving from an \u003ccode\u003exorg\u003c/code\u003e\nbased setup to hyprland has required me to reconfigure my tmux clipboard\nsettings.  This is what I did.\u003c/p\u003e\n\u003cp\u003eFirst install wl-clipboard with \u003ca href=\"/paru/\" class=\"glossary-term\" title=\"paru is a package manager for archlinux that installs packages from the \u003ca href=\"/aur/\" class=\"glossary-term\" title=\"Arch User Repository, a collection of community maintained packages for archlinux.\"\u003eAUR\u003c/a\u003e.\"\u003eparu\u003c/a\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S wl-clipboard\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNext add this to your tmux config.  I’ve long had this config, but with only\nthe \u003ccode\u003exorg\u003c/code\u003e/\u003ccode\u003exclip\u003c/code\u003e setup, now this checks for wl-copy, uses it, or falls back to\nmy old \u003ccode\u003exclip\u003c/code\u003e setup.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003ebind\u003c/span\u003e -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel \u003cspan class=\"s2\"\u003e\u0026#34;bash -c \u0026#39;command -v wl-copy \u0026gt;/dev/null \u0026amp;\u0026amp; wl-copy || xclip -i -f -selection primary | xclip -i -selection clipboard\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eset-option -s set-clipboard off\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \u003cspan class=\"s2\"\u003e\u0026#34;bash -c \u0026#39;command -v wl-copy \u0026gt;/dev/null \u0026amp;\u0026amp; wl-copy || xclip -i -f -selection primary | xclip -i -selection clipboard\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nSmooth clipboard settings for tmux is critical for my workflow.  I'm often\ngrabbing snippets of terminal output to paste into team chats, blog posts, or\nllm prompts.  Admittedly, I'm often doing this with the mouse, unless it's\ncoming from neovim, which I generally do with motions.  Moving from an `xorg`\nbased setup to hyprland has required me to reconfigure my tmux clipboard\nsettings.  This is what I did.\n\nFirst install wl-clipboard with paru.\n\n``` bash\nparu -S wl-clipboard\n```\n\nNext add this to your tmux config.  I've long had this config, but with only\nthe `xorg`/`xclip` setup, now this checks for wl-copy, uses it, or falls back to\nmy old `xclip` setup.\n\n``` bash\nbind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel \"bash -c 'command -v wl-copy \u003e/dev/null \u0026\u0026 wl-copy || xclip -i -f -selection primary | xclip -i -selection clipboard'\"\nset-option -s set-clipboard off\nbind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel \"bash -c 'command -v wl-copy \u003e/dev/null \u0026\u0026 wl-copy || xclip -i -f -selection primary | xclip -i -selection clipboard'\"\n```\n",
      "summary": "Smooth clipboard settings for tmux is critical for my workflow. I'm often grabbing snippets of terminal output to paste into team chats, blog posts, or llm...",
      "date_published": "2025-07-06T20:45:47Z",
      "date_modified": "2025-07-06T20:45:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "archlinux",
        "hyprland"
      ]
    },
    {
      "id": "https://waylonwalker.com/command-palettes-are-overrated/",
      "url": "https://waylonwalker.com/command-palettes-are-overrated/",
      "title": "command palettes are overrated",
      "content_html": "\u003cp\u003eCommand palettes are slow, and overrated, you should treat yourself better.\nYou probably installed VSC*** out of the box and your co-workers see you using\nthe mouse and reprimanded you as they should.  Mouse usage is not OK if you are\na software dev, you should have the cheap ass free mouse that came with your\ncousins dell machine five years ago and only use if for emergencies.  If you\nwant to be fast you cannot do that by moving cursors to imprecise locations and\nclicking with your hand.  You are not a caveman, put down the stones and get\nwith the damn times.  You need to be moving with precision.\u003c/p\u003e\n\u003ch2 id=\"stage-one-the-command-palette\"\u003eStage One, the command palette \u003ca href=\"#stage-one-the-command-palette\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo you are taking your first few baby steps away from that Logitech MX Master\nand you need to get shit done, during these infant months the command palette\nis your friend.  Use it you will be 10x faster than Razer Naga Ron from\naccounting.  If you are in an IDE like \u003ccode\u003eVSC***\u003c/code\u003e or a JEttedBrains editor they\ncome with a command palette for running commands and fuzy finding files, use\nit.  If you are in nvim, move on you probably don’t need this, unless you are\nstill teething on \u003ccode\u003eVSC***\u003c/code\u003e, during that tim use \u003ccode\u003e:Telescope commands\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"close-the-fn-tree\"\u003eClose the fn Tree \u003ca href=\"#close-the-fn-tree\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou don’t need a goddamn file tree open all the goddamn time, its taking up\nscreen space and filling your brain with useless shit.  They can be a helpful\ntool to move, rename, refactor files, or familiarize yourself with a codebase,\nbut you don’t use one if you want to walk someday, so just like the command\npalette we are going to give it up for fuzzy find.  If you are in nvim you are\ngoing to want to use \u003ccode\u003e:Telescope find_files\u003c/code\u003e  those other big brained ides have\nthings, look up the keybinding.\u003c/p\u003e\n\u003ch2 id=\"now-that-we-are-crawling\"\u003eNow that we are crawling \u003ca href=\"#now-that-we-are-crawling\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs you start to get your legs under you and you can crawl away from mamas teet\nnote down the commands that you use all the time, we want to get command\npalette usage way down.  Not to zero, without some sort of fuzzy command picker\n(even \u003ccode\u003e:\u0026lt;tab\u0026gt;\u003c/code\u003e) you are probably trying to remember too much and allocating too\nmany brain cells to editing text, don’t do that.  Resist over-correcting.\u003c/p\u003e\n\u003ch2 id=\"assign-hotkeys\"\u003eassign hotkeys \u003ca href=\"#assign-hotkeys\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow you need to get yourself some hotkeys going, this is for the hot shit that\nyou use several times a minute.  You should be able to do things like swap\nbetween the current file and the last file in one keystroke without wasting a\nsingle brain cycle, it should be automatic.  Go to definition, go to reference,\nno searching, searching is slow, find_files is slow.  These are tools for\nexploration we are tyring to get real work done here.\u003c/p\u003e\n\u003cp\u003eHere’s a few things you should be able to do if you want to keep up with your\nGrandma, she’s been slayin these keys for years.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ego to definition\u003c/li\u003e\n\u003cli\u003ego to reference\u003c/li\u003e\n\u003cli\u003efind_files\u003c/li\u003e\n\u003cli\u003efind and replace\u003c/li\u003e\n\u003cli\u003erename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e add this file, commit, push\u003c/li\u003e\n\u003cli\u003ego to the last file\u003c/li\u003e\n\u003cli\u003ego up and down the jumplist\u003c/li\u003e\n\u003cli\u003ego up and down the quickfix list\u003c/li\u003e\n\u003cli\u003elist open files\u003c/li\u003e\n\u003cli\u003eharpoon all the files you go to regularly\u003c/li\u003e\n\u003cli\u003eformat\u003c/li\u003e\n\u003cli\u003emove around your files\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"fly\"\u003efly \u003ca href=\"#fly\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOver time you should be using your command pallete less and less, this is not\ndesigned to run every goddamn command through.  Note the ones you use a lot and\nadd keybinds.  If you are using one of those editors that don’t make it clear\nwhat the fuck your running when you execute a command ask gippity, it can\nprobably knock out that binding in 30s just fine.\u003c/p\u003e\n\u003ch2 id=\"inspiration\"\u003einspiration \u003ca href=\"#inspiration\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe decline of “vim btw” by Sylvan Franklin.  It’s a pretty incredible video,\nhe is crushing these half satire dry humor tech content videos.  He nails that\nwith the death of vimBTW we lost the craft of knowing your editor in and out.\nWe lost the art of flying through text.  Now we have plugin kitties that say\nvimBtw, but they really aren’t using any vim features past hjkl.\u003c/p\u003e\n\u003cp\u003e[[ thoughts-724 ]]\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=RmnqdAidVeE\" 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\"\u003ehttps://www.youtube.com/watch?v=RmnqdAidVeE\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nCommand palettes are slow, and overrated, you should treat yourself better.\nYou probably installed VSC*** out of the box and your co-workers see you using\nthe mouse and reprimanded you as they should.  Mouse usage is not OK if you are\na software dev, you should have the cheap ass free mouse that came with your\ncousins dell machine five years ago and only use if for emergencies.  If you\nwant to be fast you cannot do that by moving cursors to imprecise locations and\nclicking with your hand.  You are not a caveman, put down the stones and get\nwith the damn times.  You need to be moving with precision.\n\n## Stage One, the command palette\n\nSo you are taking your first few baby steps away from that Logitech MX Master\nand you need to get shit done, during these infant months the command palette\nis your friend.  Use it you will be 10x faster than Razer Naga Ron from\naccounting.  If you are in an IDE like `VSC***` or a JEttedBrains editor they\ncome with a command palette for running commands and fuzy finding files, use\nit.  If you are in nvim, move on you probably don't need this, unless you are\nstill teething on `VSC***`, during that tim use `:Telescope commands`.\n\n## Close the fn Tree\n\nYou don't need a goddamn file tree open all the goddamn time, its taking up\nscreen space and filling your brain with useless shit.  They can be a helpful\ntool to move, rename, refactor files, or familiarize yourself with a codebase,\nbut you don't use one if you want to walk someday, so just like the command\npalette we are going to give it up for fuzzy find.  If you are in nvim you are\ngoing to want to use `:Telescope find_files`  those other big brained ides have\nthings, look up the keybinding.\n\n## Now that we are crawling\n\nAs you start to get your legs under you and you can crawl away from mamas teet\nnote down the commands that you use all the time, we want to get command\npalette usage way down.  Not to zero, without some sort of fuzzy command picker\n(even `:\u003ctab\u003e`) you are probably trying to remember too much and allocating too\nmany brain cells to editing text, don't do that.  Resist over-correcting.\n\n## assign hotkeys\n\nNow you need to get yourself some hotkeys going, this is for the hot shit that\nyou use several times a minute.  You should be able to do things like swap\nbetween the current file and the last file in one keystroke without wasting a\nsingle brain cycle, it should be automatic.  Go to definition, go to reference,\nno searching, searching is slow, find_files is slow.  These are tools for\nexploration we are tyring to get real work done here.\n\nHere's a few things you should be able to do if you want to keep up with your\nGrandma, she's been slayin these keys for years.\n\n* go to definition\n* go to reference\n* find_files\n* find and replace\n* rename\n* git add this file, commit, push\n* go to the last file\n* go up and down the jumplist\n* go up and down the quickfix list\n* list open files\n* harpoon all the files you go to regularly\n* format\n* move around your files\n\n## fly\n\nOver time you should be using your command pallete less and less, this is not\ndesigned to run every goddamn command through.  Note the ones you use a lot and\nadd keybinds.  If you are using one of those editors that don't make it clear\nwhat the fuck your running when you execute a command ask gippity, it can\nprobably knock out that binding in 30s just fine.\n\n## inspiration\n\nThe decline of \"vim btw\" by Sylvan Franklin.  It's a pretty incredible video,\nhe is crushing these half satire dry humor tech content videos.  He nails that\nwith the death of vimBTW we lost the craft of knowing your editor in and out.\nWe lost the art of flying through text.  Now we have plugin kitties that say\nvimBtw, but they really aren't using any vim features past hjkl.\n\n[[ thoughts-724 ]]\n\n\u003chttps://www.youtube.com/watch?v=RmnqdAidVeE\u003e\n",
      "summary": "Command palettes are slow, and overrated, you should treat yourself better. You probably installed VSC*** out of the box and your co-workers see you using...",
      "date_published": "2025-07-06T12:37:40Z",
      "date_modified": "2025-07-06T12:37:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-06-notes/",
      "url": "https://waylonwalker.com/2025-07-06-notes/",
      "title": "2025-07-06 Notes",
      "content_html": "\u003ch2 id=\"cat-quest-iii\"\u003eCat Quest III \u003ca href=\"#cat-quest-iii\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.mp4\" class=\"glightbox-link\" aria-label=\"getting-ship-key.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.mp4\" type=\"video/mp4\"\u003egetting-ship-key.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003ehyprland volume control, I wasn’t sure if I needed something specific for wayland/pipewire, nope pavucontrol just works.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S pavucontrol\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp\u003ethinking about \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n## Cat Quest III\n\n![getting-ship-key.mp4](https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.mp4)\n\n---\n\nhyprland volume control, I wasn't sure if I needed something specific for wayland/pipewire, nope pavucontrol just works.\n\n``` bash\nparu -S pavucontrol\n```\n\n---\n\nthinking about virtual environment\n",
      "summary": "hyprland volume control, I wasn't sure if I needed something specific for wayland/pipewire, nope pavucontrol just works.",
      "date_published": "2025-07-06T09:43:22Z",
      "date_modified": "2025-07-06T09:43:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-734/",
      "url": "https://waylonwalker.com/thought-734/",
      "title": "💭 tailwind hover",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stackoverflow.com/questions/56755439/modifying-hover-in-tailwindcss\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estackoverflow.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI need to give this a try for markata glossary\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stackoverflow.com/questions/56755439/modifying-hover-in-tailwindcss\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estackoverflow.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI need to give this a try for markata glossary\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://stackoverflow.com/questions/56755439/modifying-hover-in-tailwindcss",
      "date_published": "2025-07-06T02:05:52Z",
      "date_modified": "2025-07-06T02:05:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-05-notes/",
      "url": "https://waylonwalker.com/2025-07-05-notes/",
      "title": "2025-07-05 Notes",
      "content_html": "\u003chr/\u003e\n\u003cp\u003eI might have gpg setup right for kdewallet on hyprland, and I just timed out the request before.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0870a551-75a7-4547-a8a5-6fa1aad30716.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0870a551-75a7-4547-a8a5-6fa1aad30716.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eGot \u003ccode\u003eswaync\u003c/code\u003e working in hyprland.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/86aa4818-934c-4730-83b6-f26c247380f6.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/86aa4818-934c-4730-83b6-f26c247380f6.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003ehyprland does not load its plugins by default, I don’t see anything in the\ndocs, but it appears that you need to \u003ccode\u003eexec-once = hyprpm reload\u003c/code\u003e to reload all\nenabled plugins on startup.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003efix broken waybar fonts\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S ttf-font-awesome\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp\u003eCat Quest III progress with Wyatt and a new save with Ayla\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5ce8b10d-2755-4dd7-8049-77149dae8ccd.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5ce8b10d-2755-4dd7-8049-77149dae8ccd.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003ch2 id=\"markata-glossary\"\u003eMarkata Glossary \u003ca href=\"#markata-glossary\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWorked on my glossary ui and how it works with markata.  I think I finally got\nsomething that autodetects glossary terms and swaps them with a hoverable\nelement that displays the definition.  getting the definition to remain on the\nscreen at all times and not fall of when the term is on one side of the page or\nanother was quite tricky.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d4b3c75b-4d3c-465c-9368-bf66abb7f381.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d4b3c75b-4d3c-465c-9368-bf66abb7f381.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n---\n\nI might have gpg setup right for kdewallet on hyprland, and I just timed out the request before.\n\n![image](https://dropper.waylonwalker.com/api/file/0870a551-75a7-4547-a8a5-6fa1aad30716.webp)\n\n---\n\nGot `swaync` working in hyprland.\n\n![image](https://dropper.waylonwalker.com/api/file/86aa4818-934c-4730-83b6-f26c247380f6.webp)\n\n---\n\nhyprland does not load its plugins by default, I don't see anything in the\ndocs, but it appears that you need to `exec-once = hyprpm reload` to reload all\nenabled plugins on startup.\n\n---\n\nfix broken waybar fonts\n\n``` bash\nparu -S ttf-font-awesome\n```\n\n---\n\nCat Quest III progress with Wyatt and a new save with Ayla\n\n![image](https://dropper.waylonwalker.com/api/file/5ce8b10d-2755-4dd7-8049-77149dae8ccd.webp)\n\n---\n\n## Markata Glossary\n\nWorked on my glossary ui and how it works with markata.  I think I finally got\nsomething that autodetects glossary terms and swaps them with a hoverable\nelement that displays the definition.  getting the definition to remain on the\nscreen at all times and not fall of when the term is on one side of the page or\nanother was quite tricky.\n\n![image](https://dropper.waylonwalker.com/api/file/d4b3c75b-4d3c-465c-9368-bf66abb7f381.webp)\n",
      "summary": "I might have gpg setup right for kdewallet on hyprland, and I just timed out the request before.",
      "date_published": "2025-07-05T10:35:50Z",
      "date_modified": "2025-07-05T10:35:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-733/",
      "url": "https://waylonwalker.com/thought-733/",
      "title": "💭 I was wrong - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ZH3iKbEiks0\" title=\"I was wrong btw\" playlabel=\"Play: I was wrong btw\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eNever did I think I would see the day that theprimeagen decided to run \u003ca href=\"https://archlinux.org/\" 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\"\u003earchlinux\u003c/a\u003e.  Furthermore him to start ricing it, EVEN furthermore, \u003ca href=\"https://www.youtube.com/watch?v=pVI_smLgTY0\" 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\"\u003ePewdiepie runs arch\u003c/a\u003e now, and thinks you should too?? and is promoting it on one of the \u003ca href=\"https://socialblade.com/youtube/lists/top/100/subscribers/all/global\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/socialblade.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/socialblade.com.ico\" class=\"has-avatar  has-avatar-before\"\u003elargest YouTube channels ever\u003c/a\u003e??  Even DHH is getting in the mix with \u003ca href=\"https://omarchy.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/omarchy.org.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/omarchy.org.png\" class=\"has-avatar  has-avatar-before\"\u003eomarchy\u003c/a\u003e Such a cool transistion to see everyone find their way to linux and diving deep into the freedom and customization.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ZH3iKbEiks0\" title=\"I was wrong btw\" playlabel=\"Play: I was wrong btw\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nNever did I think I would see the day that theprimeagen decided to run [archlinux](https://archlinux.org/).  Furthermore him to start ricing it, EVEN furthermore, [Pewdiepie runs arch](https://www.youtube.com/watch?v=pVI_smLgTY0) now, and thinks you should too?? and is promoting it on one of the [largest YouTube channels ever](https://socialblade.com/youtube/lists/top/100/subscribers/all/global)??  Even DHH is getting in the mix with [omarchy](https://omarchy.org/) Such a cool transistion to see everyone find their way to linux and diving deep into the freedom and customization.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=ZH3iKbEiks0",
      "date_published": "2025-07-04T16:53:47Z",
      "date_modified": "2025-07-04T16:53:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "archlinux",
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/2025-07-04-notes/",
      "url": "https://waylonwalker.com/2025-07-04-notes/",
      "title": "2025-07-04 Notes",
      "content_html": "\u003cp\u003eFailed to \u003ca href=\"/gpg-setup-for-kdewallet/\" class=\"wikilink\" data-title=\"gpg setup for kdewallet\" data-description=\"I\u0026#39;m trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I\u0026#39;ve tried this, but brave still complains about the wallet setup,...\" data-date=\"2025-07-04\" data-preview=\"I\u0026#39;m trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I\u0026#39;ve tried this, but brave still complains about the wallet setup,...\"\u003egpg setup for kdewallet\u003c/a\u003e correctly on hyprland, brave still\ncomplains.  Maybe someday I’ll figure it out and complete the post.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eI installed hyprpm plugins.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2725367a-5810-4503-a95d-52898ec6afd9.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2725367a-5810-4503-a95d-52898ec6afd9.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eFailed to fix Wyatt’s bazzite install, I think he is going to move forward with\nhyprland as his main.  Somehow after trying to dual boot hyprland and bazzite\nhe ended up with bazzite dumping him into recovery mode on every boot and\nsaying the root account is locked.\u003c/p\u003e\n\u003cp\u003eI did learn how to mount and chroot into a bazzite partition that is running\nbtrfs and rpm-ostree.  I’m still only partly sure what I’m doing so not really\nworth a post about.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/45e02cfe-8c36-4173-9b48-81a3b7ab3889.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/45e02cfe-8c36-4173-9b48-81a3b7ab3889.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eContinued full detail on our Van, if its going to last we need to keep up on\nit, Car Washes are expencive, aint got no extra $$ in this economy, goddamn I\nsound like an old man.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e9c7cdb8-5f1e-40d2-b6d3-600f6a878588.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e9c7cdb8-5f1e-40d2-b6d3-600f6a878588.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nFailed to \u003ca href=\"/gpg-setup-for-kdewallet/\" class=\"wikilink\" data-title=\"gpg setup for kdewallet\" data-description=\"I\u0026#39;m trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I\u0026#39;ve tried this, but brave still complains about the wallet setup,...\" data-date=\"2025-07-04\"\u003egpg setup for kdewallet\u003c/a\u003e correctly on hyprland, brave still\ncomplains.  Maybe someday I'll figure it out and complete the post.\n\n---\n\nI installed hyprpm plugins.\n\n![image](https://dropper.waylonwalker.com/api/file/2725367a-5810-4503-a95d-52898ec6afd9.webp)\n\n---\n\nFailed to fix Wyatt's bazzite install, I think he is going to move forward with\nhyprland as his main.  Somehow after trying to dual boot hyprland and bazzite\nhe ended up with bazzite dumping him into recovery mode on every boot and\nsaying the root account is locked.\n\nI did learn how to mount and chroot into a bazzite partition that is running\nbtrfs and rpm-ostree.  I'm still only partly sure what I'm doing so not really\nworth a post about.\n\n![image](https://dropper.waylonwalker.com/api/file/45e02cfe-8c36-4173-9b48-81a3b7ab3889.webp)\n\n---\n\nContinued full detail on our Van, if its going to last we need to keep up on\nit, Car Washes are expencive, aint got no extra $$ in this economy, goddamn I\nsound like an old man.\n\n![image](https://dropper.waylonwalker.com/api/file/e9c7cdb8-5f1e-40d2-b6d3-600f6a878588.webp)\n",
      "summary": "Failed to gpg-setup-for-kdewallet correctly on hyprland, brave still complains. Maybe someday I'll figure it out and complete the post.",
      "date_published": "2025-07-04T16:30:04Z",
      "date_modified": "2025-07-04T16:30:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-731/",
      "url": "https://waylonwalker.com/thought-731/",
      "title": "💭 { TechDufus }",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://techdufus.com/#timeline\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://techdufus.com/img/social-default.jpg\" alt=\"Home | { TechDufus } — TechDufus writes about platform engineering, homelab rebuilds, and agent workflows that hold up in the real world.\" loading=\"lazy\"/ data-glightbox=\"description: Home | { TechDufus } — TechDufus writes about platform engineering, homelab rebuilds, and agent workflows that hold up in the real world.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHome | { TechDufus }\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTechDufus writes about platform engineering, homelab rebuilds, and agent workflows that hold up in the real world.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003e{ TechDufus } · techdufus.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis has to be top tier dopest home page of all time.  The commands are all so well customized and whimsical on the terminal.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5387bb34-4a9d-4a51-95d2-ed6242c411f8.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5387bb34-4a9d-4a51-95d2-ed6242c411f8.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://techdufus.com/#timeline\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://techdufus.com/img/social-default.jpg\" alt=\"Home | { TechDufus } — TechDufus writes about platform engineering, homelab rebuilds, and agent workflows that hold up in the real world.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHome | { TechDufus }\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTechDufus writes about platform engineering, homelab rebuilds, and agent workflows that hold up in the real world.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003e{ TechDufus } \u0026middot; techdufus.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis has to be top tier dopest home page of all time.  The commands are all so well customized and whimsical on the terminal.\n\n![image](https://dropper.waylonwalker.com/api/file/5387bb34-4a9d-4a51-95d2-ed6242c411f8.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://techdufus.com/#timeline",
      "date_published": "2025-07-02T13:35:45Z",
      "date_modified": "2025-07-02T13:35:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homepage",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-726/",
      "url": "https://waylonwalker.com/thought-726/",
      "title": "💭 { TechDufus } | Building a Talos Kubernetes Homelab with Terra...",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html\" class=\"glightbox-link\" aria-label=\"https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html\" alt=\"https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html\"/ data-glightbox=\"description: https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI’ve ran my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e on k3s for a year and a half now, and have had talos fomo the whole time.  I’m not sure if this article helps or hurts.  Helps to see that techdufus struggled and wished he went k3s first, but theres so much good to it that I want it.\u003c/p\u003e\n\u003ch2 id=\"prometheus-and-grafana-for-monitoring-because-you-cant-manage-what-you-cant-see\"\u003ePrometheus and Grafana for monitoring (because you can’t manage what you can’t see) \u003ca href=\"#prometheus-and-grafana-for-monitoring-because-you-cant-manage-what-you-cant-see\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m getting there, ok, I have some of it figured out but not firing on all cylinders like I want.\u003c/p\u003e\n\u003ch2 id=\"cloudnativepg\"\u003eCloudNativePG \u003ca href=\"#cloudnativepg\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003efor PostgreSQL (way better than managing databases manually)\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eAmen to this, cnpg is kick ass and has me tempted to drop sqlite for my production database default.  I mostly make small shit on the side that is never going to blow up.  sqlite is really good, but the automation that comes along with cnpg to just run it on all nodes and backups once you establish the pattern with the first one is sick.\u003c/p\u003e\n\u003ch2 id=\"-actually-read-the-docs-\"\u003e🤣🤣🤣 actually read the docs 🤣🤣🤣 \u003ca href=\"#-actually-read-the-docs-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9c41132e-7808-49af-9aaa-68a5e5870a4b.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9c41132e-7808-49af-9aaa-68a5e5870a4b.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"is-this-overkill-for-a-homelab\"\u003eIs This Overkill for a Homelab? \u003ca href=\"#is-this-overkill-for-a-homelab\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAbsolutely. Could do most of this with k3s or Docker Compose. But where’s the fun in that?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eSpeaking my language here!  Again I’m well past the 1 year mark of running k3s and i’ve had no regrets.  Kubernetes is about establishing and replicating patterns, its a dream to deploy to.  It gets so much hate for being obtuse, hard to use, yaml intense.  You get full control of ever damn thing you need through configuration, and if you keep it simple you can deploy some sick shit out of it without needing to go hard on the yaml, again, think really hard about it a few times, and replicate.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html](/static/https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html)\n\nI've ran my homelab on k3s for a year and a half now, and have had talos fomo the whole time.  I'm not sure if this article helps or hurts.  Helps to see that techdufus struggled and wished he went k3s first, but theres so much good to it that I want it.\n\n## Prometheus and Grafana for monitoring (because you can’t manage what you can’t see)\n\nI'm getting there, ok, I have some of it figured out but not firing on all cylinders like I want.\n\n## CloudNativePG\n\n\u003e for PostgreSQL (way better than managing databases manually)\n\nAmen to this, cnpg is kick ass and has me tempted to drop sqlite for my production database default.  I mostly make small shit on the side that is never going to blow up.  sqlite is really good, but the automation that comes along with cnpg to just run it on all nodes and backups once you establish the pattern with the first one is sick.\n\n## 🤣🤣🤣 actually read the docs 🤣🤣🤣\n\n![image](https://dropper.waylonwalker.com/api/file/9c41132e-7808-49af-9aaa-68a5e5870a4b.webp)\n\n## Is This Overkill for a Homelab?\n\n\u003eAbsolutely. Could do most of this with k3s or Docker Compose. But where’s the fun in that?\n\nSpeaking my language here!  Again I'm well past the 1 year mark of running k3s and i've had no regrets.  Kubernetes is about establishing and replicating patterns, its a dream to deploy to.  It gets so much hate for being obtuse, hard to use, yaml intense.  You get full control of ever damn thing you need through configuration, and if you keep it simple you can deploy some sick shit out of it without needing to go hard on the yaml, again, think really hard about it a few times, and replicate.\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://techdufus.com/tech/2025/06/30/building-a-talos-kubernetes-homelab-on-proxmox-with-terraform.html",
      "date_published": "2025-07-02T01:45:11Z",
      "date_modified": "2025-07-02T01:45:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/just-fucking-use-kubernetes/",
      "url": "https://waylonwalker.com/just-fucking-use-kubernetes/",
      "title": "just fucking use kubernetes",
      "content_html": "\u003cp\u003eYou want to run containers?\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eJUST FUCKING USE KUBERNETES.\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition tip\"\u003e\n\u003cp class=\"admonition-title\"\u003eObvious satire\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eIf you don\u0026#39;t like harsh language this is not the post for you.  Obviously\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eripping off \u003ca href=\"https://motherfuckingwebsite.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/motherfuckingwebsite.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/motherfuckingwebsite.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emotherfuckingwebsite\u003c/a\u003e.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eThIs is \u003ca href=\"/ai-slop/\" class=\"glossary-term\" title=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\"\u003eAI SLoP\u003c/a\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eIf you don\u0026#39;t like if you can fuck off to the next post, I\u0026#39;m having fun here,\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ebut satire is not my strong suit and needed some help.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/should-i-kubernetes-my-homelab/\" class=\"wikilink\" data-title=\"Should I kubernetes My Homelab\" data-description=\"Yes\" data-date=\"2025-08-11\" data-preview=\"Yes\"\u003eShould I kubernetes My Homelab\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/the-wrong-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Wrong Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...\" data-date=\"2025-12-06\" data-preview=\"Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...\"\u003eThe Wrong Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/the-right-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Right Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.\" data-date=\"2025-12-10\" data-preview=\"Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.\"\u003eThe Right Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/i-got-the-kubernetes-in-my-basement-autism/\" class=\"wikilink\" data-title=\"I got the kubernetes in my basement autism\" data-description=\"What flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\" data-date=\"2025-12-05\" data-preview=\"What flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\"\u003eI got the kubernetes in my basement autism\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003chr/\u003e\n\u003ch2 id=\"but-its-complicated\"\u003e“But it’s complicated!” \u003ca href=\"#but-its-complicated\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eShut up.  Close twitter and fucking do something.  Life is complicated. You\nknow what else is complicated? Email. DNS. Life. Kubernetes is the least\npainful way to orchestrate containers at scale. \u003cstrong\u003eDocker Compose is for your\nlaptop.\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSwarm is dead.\u003c/li\u003e\n\u003cli\u003eNomad is just sad.\u003c/li\u003e\n\u003cli\u003eSystemd units? Get out of here.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"but-my-app-is-small\"\u003e“But my app is small!” \u003ca href=\"#but-my-app-is-small\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSO IS YOUR AMBITION.\u003c/strong\u003e\nYou \u003cem\u003ecould\u003c/em\u003e write a bunch of bash scripts and hope they work on prod.\nYou \u003cem\u003ecould\u003c/em\u003e SSH into servers and handcraft your infra like it’s 2011.\nOr you could \u003cstrong\u003ejust fucking use Kubernetes\u003c/strong\u003e and sleep at night.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"i-can-just-throw-my-script-in-crontab\"\u003eI can just throw my script in crontab \u003ca href=\"#i-can-just-throw-my-script-in-crontab\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTell that to your boss when your cronjob failed 16 times in the last week\nwithout anyone noticing. \u003cstrong\u003ekubernete\u003c/strong\u003e makes it fucking simple, want retry ask\nfor it.  Hanging script, activeDeadlineSeconds that bitch.  Connecting to six\nother services in your shitty ass infrastructure this shit retries automatically.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"i-dont-need-autoscaling\"\u003e“I don’t need autoscaling!” \u003ca href=\"#i-dont-need-autoscaling\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCool. Tell that to your boss when the CEO tweets your link and the site goes\ndown harder than your last date.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"but-yaml-is-ugly\"\u003e“But YAML is ugly!” \u003ca href=\"#but-yaml-is-ugly\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo is your Terraform, your Ansible, your Prometheus config, your custom CI/CD\nscripts written in Bash, and the spaghetti you called a monolith before you\nwent microservices and made it worse.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"kubernetes-is-too-heavy\"\u003e“Kubernetes is too heavy!” \u003ca href=\"#kubernetes-is-too-heavy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCompared to what?\u003c/p\u003e\n\u003cp\u003eYour handcrafted, artisanal, single-node LXC setup running on an Intel NUC from 2014?\u003c/p\u003e\n\u003cp\u003eHeard of k3s? k0s? No.  These fuckers will have you running kubernetes running\non your grandpas goddamn gateway 2000 right next to AOL messenger without\nsplooging out the the ashes of his Marlboro Reds.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"ssh\"\u003eSSH? \u003ca href=\"#ssh\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou don’t need no goddam ssh to install your 200lb gorilla editor so you can\nhand edit your init files and carefully contruct your init system.  This is\nkubernetes, you use the fucking api, all you need is a connection and a\nkubeconfig.  This motherfucker runs containers so you can keep your bitch-ass\neditor where it belongs, off the fucking host machine!\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"what-if-its-overkill\"\u003e“What if it’s overkill?” \u003ca href=\"#what-if-its-overkill\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat if YOU are underkill?\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"how-do-i-do-zero-downtime-deploys\"\u003e“How do I do zero-downtime deploys?” \u003ca href=\"#how-do-i-do-zero-downtime-deploys\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eProbes my dude, you fucking probe your shit.  Rolling out a new deployment\nkubernets won’t cut over to your broke ass release if that shit don’t pass. No\nmore writing janky scripts that SSH into prod and run \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e pull while praying to\nthe CI/CD gods.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"what-if-i-still-fuck-it-up---how-do-i-roll-back\"\u003e“What if I still fuck it up - How do I roll back?” \u003ca href=\"#what-if-i-still-fuck-it-up---how-do-i-roll-back\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003ek9s\u003c/code\u003e is your best friend, pop that shit open find your broke ass deployment,\njump owner to the replicaset and roll that bitch back to the working shit.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"i-need-to-scale\"\u003eI need to scale \u003ca href=\"#i-need-to-scale\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis shit is built in, add a goddamn replica or 6 for fuck sake, need\nautoscaling use the HPA.  This aint your granpas hand fucking crafted pet\nserver, its fucking cattle.  Load balancing just fucking happens, don’t think\nabout it just use it, and it will work for your six goddamn friends that\nactually use your shit.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"i-want-gitops\"\u003eI want gitops \u003ca href=\"#i-want-gitops\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLet me introduce you to argocd, this fucker uses helm so one fucking command\nand your ass is on the beach while your dev team deploys their own shit.\u003c/p\u003e\n\u003chr/\u003e\n\u003ch2 id=\"use-kubernetes\"\u003eUSE KUBERNETES \u003ca href=\"#use-kubernetes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIt fucking works.\u003c/li\u003e\n\u003cli\u003eEveryone else is using it.\u003c/li\u003e\n\u003cli\u003eThere are like 500 open-source projects built just to make it easier.\u003c/li\u003e\n\u003cli\u003eIt runs on your laptop, your server, the cloud, and inside your dreams.\u003c/li\u003e\n\u003cli\u003eIt \u003cem\u003ewill\u003c/em\u003e make your resume better.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"not-convinced\"\u003eNot convinced? \u003ca href=\"#not-convinced\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere’s your alternative stack:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eA bash script that restarts Docker when it dies.\u003c/li\u003e\n\u003cli\u003eA Makefile that deploys via SCP.\u003c/li\u003e\n\u003cli\u003eA cron job that prays to the log gods.\u003c/li\u003e\n\u003cli\u003eA wiki page explaining how to debug your hand-rolled bullshit.\u003c/li\u003e\n\u003cli\u003eYou. Crying.\u003c/li\u003e\n\u003c/ol\u003e\n\u003chr/\u003e\n\u003ch2 id=\"so-yeah\"\u003eSo yeah \u003ca href=\"#so-yeah\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSave yourself.\nSave your team.\nSave your infrastructure.\u003c/p\u003e\n\u003ch2 id=\"just\"\u003eJUST \u003ca href=\"#just\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"fucking\"\u003eFUCKING \u003ca href=\"#fucking\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"use\"\u003eUSE \u003ca href=\"#use\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch2 id=\"kubernetes\"\u003eKUBERNETES \u003ca href=\"#kubernetes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e(or don’t, and become a DevOps cautionary tale)\u003c/em\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition seealso\"\u003e\n\u003cp class=\"admonition-title\"\u003eSeealso\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://motherfuckingwebsite.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/motherfuckingwebsite.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/motherfuckingwebsite.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emotherfuckingwebsite\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.justfuckingcode.com/\"\u003ejustfuckingcode\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://justfuckingusereact.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justfuckingusereact.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justfuckingusereact.com.png\" class=\"has-avatar  has-avatar-before\"\u003ejustfuckingusereact\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n",
      "content_text": "\nYou want to run containers?\n\n**JUST FUCKING USE KUBERNETES.**\n\n!!! tip \"Obvious satire\"\n    If you don't like harsh language this is not the post for you.  Obviously\n    ripping off [motherfuckingwebsite](https://motherfuckingwebsite.com/).\n\n!!! warning \"ThIs is AI SLoP\"\n    If you don't like if you can fuck off to the next post, I'm having fun here,\n    but satire is not my strong suit and needed some help.\n\n!!! seealso\n\n    * \u003ca href=\"/should-i-kubernetes-my-homelab/\" class=\"wikilink\" data-title=\"Should I kubernetes My Homelab\" data-description=\"Yes\" data-date=\"2025-08-11\"\u003eShould I kubernetes My Homelab\u003c/a\u003e\n    * \u003ca href=\"/the-wrong-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Wrong Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is complex, time consuming, there are almost no docs to help you (homelab focused docs for things you want to install),...\" data-date=\"2025-12-06\"\u003eThe Wrong Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e\n    * \u003ca href=\"/the-right-reasons-to-run-kubernetes-in-your-homelab/\" class=\"wikilink\" data-title=\"The Right Reasons To Run Kubernetes In Your Homelab\" data-description=\"Running kubernetes in your homelab is a fantastic way to learn, explore, express yourself, and run services that you use.\" data-date=\"2025-12-10\"\u003eThe Right Reasons To Run Kubernetes In Your Homelab\u003c/a\u003e\n    * \u003ca href=\"/i-got-the-kubernetes-in-my-basement-autism/\" class=\"wikilink\" data-title=\"I got the kubernetes in my basement autism\" data-description=\"What flavor of autism did you guys get, I got the kind where I run kubernetes in my basement.\" data-date=\"2025-12-05\"\u003eI got the kubernetes in my basement autism\u003c/a\u003e\n\n---\n\n## \"But it’s complicated!\"\n\nShut up.  Close twitter and fucking do something.  Life is complicated. You\nknow what else is complicated? Email. DNS. Life. Kubernetes is the least\npainful way to orchestrate containers at scale. **Docker Compose is for your\nlaptop.**\n\n* Swarm is dead.\n* Nomad is just sad.\n* Systemd units? Get out of here.\n\n---\n\n## \"But my app is small!\"\n\n**SO IS YOUR AMBITION.**\nYou *could* write a bunch of bash scripts and hope they work on prod.\nYou *could* SSH into servers and handcraft your infra like it's 2011.\nOr you could **just fucking use Kubernetes** and sleep at night.\n\n---\n\n## I can just throw my script in crontab\n\nTell that to your boss when your cronjob failed 16 times in the last week\nwithout anyone noticing. **kubernete** makes it fucking simple, want retry ask\nfor it.  Hanging script, activeDeadlineSeconds that bitch.  Connecting to six\nother services in your shitty ass infrastructure this shit retries automatically.\n\n---\n\n## \"I don’t need autoscaling!\"\n\nCool. Tell that to your boss when the CEO tweets your link and the site goes\ndown harder than your last date.\n\n---\n\n## \"But YAML is ugly!\"\n\nSo is your Terraform, your Ansible, your Prometheus config, your custom CI/CD\nscripts written in Bash, and the spaghetti you called a monolith before you\nwent microservices and made it worse.\n\n---\n\n## \"Kubernetes is too heavy!\"\n\nCompared to what?\n\nYour handcrafted, artisanal, single-node LXC setup running on an Intel NUC from 2014?\n\nHeard of k3s? k0s? No.  These fuckers will have you running kubernetes running\non your grandpas goddamn gateway 2000 right next to AOL messenger without\nsplooging out the the ashes of his Marlboro Reds.\n\n---\n\n## SSH?\n\nYou don't need no goddam ssh to install your 200lb gorilla editor so you can\nhand edit your init files and carefully contruct your init system.  This is\nkubernetes, you use the fucking api, all you need is a connection and a\nkubeconfig.  This motherfucker runs containers so you can keep your bitch-ass\neditor where it belongs, off the fucking host machine!\n\n---\n\n## \"What if it’s overkill?\"\n\nWhat if YOU are underkill?\n\n---\n\n## \"How do I do zero-downtime deploys?\"\n\nProbes my dude, you fucking probe your shit.  Rolling out a new deployment\nkubernets won't cut over to your broke ass release if that shit don't pass. No\nmore writing janky scripts that SSH into prod and run git pull while praying to\nthe CI/CD gods.\n\n---\n\n## \"What if I still fuck it up - How do I roll back?\"\n\n`k9s` is your best friend, pop that shit open find your broke ass deployment,\njump owner to the replicaset and roll that bitch back to the working shit.\n\n---\n\n## I need to scale\n\nThis shit is built in, add a goddamn replica or 6 for fuck sake, need\nautoscaling use the HPA.  This aint your granpas hand fucking crafted pet\nserver, its fucking cattle.  Load balancing just fucking happens, don't think\nabout it just use it, and it will work for your six goddamn friends that\nactually use your shit.\n\n---\n\n## I want gitops\n\nLet me introduce you to argocd, this fucker uses helm so one fucking command\nand your ass is on the beach while your dev team deploys their own shit.\n\n---\n\n## USE KUBERNETES\n\n* It fucking works.\n* Everyone else is using it.\n* There are like 500 open-source projects built just to make it easier.\n* It runs on your laptop, your server, the cloud, and inside your dreams.\n* It *will* make your resume better.\n\n---\n\n## Not convinced?\n\nHere’s your alternative stack:\n\n1. A bash script that restarts Docker when it dies.\n2. A Makefile that deploys via SCP.\n3. A cron job that prays to the log gods.\n4. A wiki page explaining how to debug your hand-rolled bullshit.\n5. You. Crying.\n\n---\n\n## So yeah\n\nSave yourself.\nSave your team.\nSave your infrastructure.\n\n## JUST\n\n## FUCKING\n\n## USE\n\n## KUBERNETES\n\n*(or don’t, and become a DevOps cautionary tale)*\n\n!!! seealso\n\n    * [motherfuckingwebsite](https://motherfuckingwebsite.com/)\n    * [justfuckingcode](https://www.justfuckingcode.com/)\n    * [justfuckingusereact](https://justfuckingusereact.com/)\n",
      "summary": "You want to run containers?",
      "date_published": "2025-07-01T12:46:33Z",
      "date_modified": "2025-07-01T12:46:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "satire"
      ]
    },
    {
      "id": "https://waylonwalker.com/markata-parallel-render/",
      "url": "https://waylonwalker.com/markata-parallel-render/",
      "title": "markata parallel render",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  _._   __/__   __  __ _/_   Recorded: 07:53:56  Samples:  \u003cspan class=\"m\"\u003e71681\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e /_//_/// /_\u003cspan class=\"se\"\u003e\\ \u003c/span\u003e/ //_// / //_\u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003e/ //     Duration: 92.741    CPU time: 91.748\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/_/                      v4.5.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProgram: /home/waylon/git/waylonwalker.com/.venv/bin/markata build --pdb\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e92.740 Markata.run  markata/__init__.py:443\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 92.714 HookCaller.__call__  pluggy/_hooks.py:479\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e2\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  pluggy\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         92.714 PluginManager._hookexec  pluggy/_manager.py:106\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 38.207 wrapper_register  markata/hookspec.py:265\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 26.105 render  plugins/link_collector.py:59\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 10.012 BeautifulSoup.__init__  bs4/__init__.py:122\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e14\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  bs4, html\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 5.599 \u0026lt;listcomp\u0026gt;  plugins/link_collector.py:181\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 4.050 \u0026lt;listcomp\u0026gt;  plugins/link_collector.py:173\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 3.466 Markata.map  markata/__init__.py:565\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.092   markata/__init__.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 0.942 BeautifulSoup.find_all  bs4/element.py:2008\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e2\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  bs4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 9.107 render  markata/plugins/render_markdown.py:260\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.902 result_iterator  concurrent/futures/_base.py:612\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e5\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  concurrent, threading, \u0026lt;built-in\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.079 glob  markata/plugins/glob.py:112\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.909 \u0026lt;listcomp\u0026gt;  markata/plugins/glob.py:161\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.908 Future.result  concurrent/futures/_base.py:428\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e              \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e3\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  concurrent, threading, \u0026lt;built-in\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 25.708 render  markata/plugins/post_template.py:639\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 25.612 render_article  markata/plugins/post_template.py:404\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 22.223 \u0026lt;dictcomp\u0026gt;  markata/plugins/post_template.py:421\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 22.200 render_template  markata/plugins/post_template.py:429\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 22.185 Template.render  jinja2/environment.py:1269\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 21.210 root  templates/post.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 20.937 root  templates/base.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e              \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 20.455 block_content  templates/post.html:17\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 11.212 root  templates/recent.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 10.853 root  templates/feed_sm_partial.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.392 Environment.getattr  jinja2/environment.py:480\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.328 Feed.posts  markata/plugins/feeds.py:329\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e           \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.300 Feed.map  markata/plugins/feeds.py:352\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 7.963 Markata.map  markata/__init__.py:565\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 7.786 \u0026lt;listcomp\u0026gt;  markata/__init__.py:628\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 6.465   markata/__init__.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.486 call  jinja2/runtime.py:260\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.468 Feed.map  markata/plugins/feeds.py:352\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                       \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.394 Markata.map  markata/__init__.py:565\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 8.326 \u0026lt;listcomp\u0026gt;  markata/__init__.py:628\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                             \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 7.086   markata/__init__.py\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 3.015 Cache.set  diskcache/core.py:749\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e           \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e3\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  diskcache\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 7.788 save  markata/plugins/feeds.py:462\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 7.779 create_page  markata/plugins/feeds.py:493\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 4.530 Template.render  jinja2/environment.py:1269\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.437 root  templates/feed.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.360 root  templates/base.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.231 block_content  templates/feed.html:17\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e           \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.118 root  templates/feed_partial.html:4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.298 Environment.getattr  jinja2/environment.py:480\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                 \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.290 Feed.posts  markata/plugins/feeds.py:329\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.290 Feed.map  markata/plugins/feeds.py:352\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e                       \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.276 Markata.map  markata/__init__.py:565\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 1.325 Feed.map  markata/plugins/feeds.py:352\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.317 Markata.map  markata/__init__.py:565\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.237 Cache.set  diskcache/core.py:749\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 7.029 pre_render  markata/plugins/auto_description.py:185\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 6.840 set_description  markata/plugins/auto_description.py:137\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 5.791 get_description  markata/plugins/auto_description.py:107\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 4.485 MarkdownIt.parse  markdown_it/main.py:256\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e8\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  markdown_it\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.066 MarkdownIt.__init__  markdown_it/main.py:33\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 5.730 pre_render  markata/plugins/analytics.py:102\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 2.397 savefig  matplotlib/pyplot.py:1238\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"p\"\u003e|\u003c/span\u003e     \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e4\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  matplotlib\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 2.004 heatmap  seaborn/matrix.py:355\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e10\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  seaborn, matplotlib\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 1.704 post_render  plugins/permalink_aria.py:40\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.588 process_html_content  plugins/permalink_aria.py:13\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e- 1.619 save  markata/plugins/publish_source.py:83\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e  \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.216 Post.dumps  markata/plugins/post_model.py:333\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.203 Post.yaml  markata/plugins/post_model.py:254\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e        \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.044 dump  yaml/__init__.py:248\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"p\"\u003e|\u003c/span\u003e              \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e3\u003c/span\u003e frames hidden\u003cspan class=\"o\"\u003e]\u003c/span\u003e  yaml\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e         \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.183 post_render  plugins/wikilink_hover.py:104\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"sb\"\u003e`\u003c/span\u003e- 1.094 do_hover_links  plugins/wikilink_hover.py:126\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003e07:55:38\u003cspan class=\"o\"\u003e]\u003c/span\u003e save \u003cspan class=\"nb\"\u003ecomplete\u003c/span\u003e                                                                            __init__.py:465\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           teardown running                                                                         __init__.py:462\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           teardown \u003cspan class=\"nb\"\u003ecomplete\u003c/span\u003e                                                                        __init__.py:465\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           lifetime cache hit rate 0.17%                                                            __init__.py:471\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           lifetime cache hits/misses 36/21118                                                      __init__.py:476\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           run cache hit rate 0.17%                                                                 __init__.py:482\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           run cache hits/misses 36/21118                                                           __init__.py:487\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMap Cache Statistics:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTotal calls: \u003cspan class=\"m\"\u003e17197\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCache hits: \u003cspan class=\"m\"\u003e15317\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCache misses: \u003cspan class=\"m\"\u003e1880\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit rate: 89.1%\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCache size: \u003cspan class=\"m\"\u003e1880\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\n``` bash\n  _._   __/__   __  __ _/_   Recorded: 07:53:56  Samples:  71681\n /_//_/// /_\\ / //_// / //_'/ //     Duration: 92.741    CPU time: 91.748\n/_/                      v4.5.1\n\nProgram: /home/waylon/git/waylonwalker.com/.venv/bin/markata build --pdb\n\n92.740 Markata.run  markata/__init__.py:443\n`- 92.714 HookCaller.__call__  pluggy/_hooks.py:479\n      [2 frames hidden]  pluggy\n         92.714 PluginManager._hookexec  pluggy/_manager.py:106\n         |- 38.207 wrapper_register  markata/hookspec.py:265\n         |  |- 26.105 render  plugins/link_collector.py:59\n         |  |  |- 10.012 BeautifulSoup.__init__  bs4/__init__.py:122\n         |  |  |     [14 frames hidden]  bs4, html\n         |  |  |- 5.599 \u003clistcomp\u003e  plugins/link_collector.py:181\n         |  |  |- 4.050 \u003clistcomp\u003e  plugins/link_collector.py:173\n         |  |  |- 3.466 Markata.map  markata/__init__.py:565\n         |  |  |`- 2.092   markata/__init__.py\n         |  |  `- 0.942 BeautifulSoup.find_all  bs4/element.py:2008\n         |  |        [2 frames hidden]  bs4\n         |  |- 9.107 render  markata/plugins/render_markdown.py:260\n         |  |`- 8.902 result_iterator  concurrent/futures/_base.py:612\n         |  |        [5 frames hidden]  concurrent, threading, \u003cbuilt-in\u003e\n         |  `- 2.079 glob  markata/plugins/glob.py:112\n         |`- 1.909 \u003clistcomp\u003e  markata/plugins/glob.py:161\n         |        `- 1.908 Future.result  concurrent/futures/_base.py:428\n         |              [3 frames hidden]  concurrent, threading, \u003cbuilt-in\u003e\n         |- 25.708 render  markata/plugins/post_template.py:639\n         |`- 25.612 render_article  markata/plugins/post_template.py:404\n         |     |- 22.223 \u003cdictcomp\u003e  markata/plugins/post_template.py:421\n         |     |  `- 22.200 render_template  markata/plugins/post_template.py:429\n         |     |`- 22.185 Template.render  jinja2/environment.py:1269\n         |     |        `- 21.210 root  templates/post.html:4\n         |     |`- 20.937 root  templates/base.html:4\n         |     |              `- 20.455 block_content  templates/post.html:17\n         |     |                 |- 11.212 root  templates/recent.html:4\n         |     |                 |`- 10.853 root  templates/feed_sm_partial.html:4\n         |     |                 |     `- 8.392 Environment.getattr  jinja2/environment.py:480\n         |     |                 |`- 8.328 Feed.posts  markata/plugins/feeds.py:329\n         |     |                 |           `- 8.300 Feed.map  markata/plugins/feeds.py:352\n         |     |                 |`- 7.963 Markata.map  markata/__init__.py:565\n         |     |                 |                 `- 7.786 \u003clistcomp\u003e  markata/__init__.py:628\n         |     |                 |`- 6.465   markata/__init__.py\n         |     |                 `- 8.486 call  jinja2/runtime.py:260\n         |     |`- 8.468 Feed.map  markata/plugins/feeds.py:352\n         |     |                       `- 8.394 Markata.map  markata/__init__.py:565\n         |     |`- 8.326 \u003clistcomp\u003e  markata/__init__.py:628\n         |     |                             `- 7.086   markata/__init__.py\n         |`- 3.015 Cache.set  diskcache/core.py:749\n         |           [3 frames hidden]  diskcache\n         |- 7.788 save  markata/plugins/feeds.py:462\n         |  `- 7.779 create_page  markata/plugins/feeds.py:493\n         |     |- 4.530 Template.render  jinja2/environment.py:1269\n         |     |`- 2.437 root  templates/feed.html:4\n         |     |     `- 2.360 root  templates/base.html:4\n         |     |`- 2.231 block_content  templates/feed.html:17\n         |     |           `- 2.118 root  templates/feed_partial.html:4\n         |     |`- 1.298 Environment.getattr  jinja2/environment.py:480\n         |     |                 `- 1.290 Feed.posts  markata/plugins/feeds.py:329\n         |     |`- 1.290 Feed.map  markata/plugins/feeds.py:352\n         |     |                       `- 1.276 Markata.map  markata/__init__.py:565\n         |     |- 1.325 Feed.map  markata/plugins/feeds.py:352\n         |     |`- 1.317 Markata.map  markata/__init__.py:565\n         |     `- 1.237 Cache.set  diskcache/core.py:749\n         |- 7.029 pre_render  markata/plugins/auto_description.py:185\n         |`- 6.840 set_description  markata/plugins/auto_description.py:137\n         |     `- 5.791 get_description  markata/plugins/auto_description.py:107\n         |        |- 4.485 MarkdownIt.parse  markdown_it/main.py:256\n         |        |     [8 frames hidden]  markdown_it\n         |`- 1.066 MarkdownIt.__init__  markdown_it/main.py:33\n         |- 5.730 pre_render  markata/plugins/analytics.py:102\n         |  |- 2.397 savefig  matplotlib/pyplot.py:1238\n         |  |     [4 frames hidden]  matplotlib\n         |  `- 2.004 heatmap  seaborn/matrix.py:355\n         |        [10 frames hidden]  seaborn, matplotlib\n         |- 1.704 post_render  plugins/permalink_aria.py:40\n         |`- 1.588 process_html_content  plugins/permalink_aria.py:13\n         |- 1.619 save  markata/plugins/publish_source.py:83\n         |  `- 1.216 Post.dumps  markata/plugins/post_model.py:333\n         |`- 1.203 Post.yaml  markata/plugins/post_model.py:254\n         |        `- 1.044 dump  yaml/__init__.py:248\n         |              [3 frames hidden]  yaml\n         `- 1.183 post_render  plugins/wikilink_hover.py:104\n            `- 1.094 do_hover_links  plugins/wikilink_hover.py:126\n\n[07:55:38] save complete                                                                            __init__.py:465\n           teardown running                                                                         __init__.py:462\n           teardown complete                                                                        __init__.py:465\n           lifetime cache hit rate 0.17%                                                            __init__.py:471\n           lifetime cache hits/misses 36/21118                                                      __init__.py:476\n           run cache hit rate 0.17%                                                                 __init__.py:482\n           run cache hits/misses 36/21118                                                           __init__.py:487\n\nMap Cache Statistics:\nTotal calls: 17197\nCache hits: 15317\nCache misses: 1880\nHit rate: 89.1%\nCache size: 1880\n```\n",
      "date_published": "2025-07-01T08:05:58Z",
      "date_modified": "2025-07-01T08:05:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/principal-engineer-at-meta/",
      "url": "https://waylonwalker.com/principal-engineer-at-meta/",
      "title": "principal-engineer-at-meta",
      "content_html": "\u003cp\u003eJake Bolam principal engineer at Meta, has some of the best career advice for\nthose looking to become principal or just be better at their craft.  This\n\u003ca href=\"https://www.youtube.com/clip/UgkxFp3xC-SrxNtLw3FW24b26DRhNrMra3m8\" 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\"\u003evideo\u003c/a\u003e was\nsuch a banger I had to bring it in as a full post, and not just a thought. It\nwas a random YouTube auto play, something that I probably wouldn’t have clicked\non given title an thumbnail, but turned out to be very impactful.  Jake is such\na smart guy with a lot of great insights, and I can tell he thinks really quick\non his feet, he just pulled all of these things out of his head on the fly.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eYT Algorithm Gold\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eI don\u0026#39;t know what it is about this title and thumbnail, but it gives me \u0026#34;ex\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003egoogle, ex facebook, ex microsoft, $100M engineer\u0026#34; vibes in a cringy and\nnot satire kind of way.  I would have never clicked on it, it autoplayed\nafter a podcast and it hit, immediately I’m like who are these guys? subd\nand started this post it was so good.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"long-on-boarding\"\u003eLong On Boarding \u003ca href=\"#long-on-boarding\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJake had a super long period of on boarding at meta, he came in as a seasoned\nleader yet took many months to get going.  This was a phase during or near the\nend of the COVID-19 pandemic and his team was so swamped they were unable to\ngive him time to help him.  He felt his on boarding was taking longer than he\nwanted, and found backend work at Instagram.  Moving to Instagram he jumped in\nand starting making impact quick and found his way moving up the ladder serving\nas tech lead for several teams.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI grabbed a ton of clips from this video, but did not for this section as it\nwas kinda long.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"always-open-for-a-chat\"\u003eAlways open for a Chat \u003ca href=\"#always-open-for-a-chat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs busy as Jake is, he leaves “Always open for a chat” on his internal profile.\nHe does not care about rank into account, the intern can ask for a coffee chat.\nHis key metric is how well is this person receiving information.  If they are\ncoming back with the same questions every 3 months he is going to start telling\nthem he does not have the time.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/clip/Ugkxjwsds5Z9qqqIlJonyHNZDy4B_ArcLjNx?si=9Oi-ODqqYR215kJn\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg\" alt=\"✂️ Always Open for a Chat\"/ data-glightbox=\"description: ✂️ Always Open for a Chat\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI’ve had a fair amount of personal experience with this.  Early in my career I\nexperience quite a bit of higher ranks feeling untouchable, they were\nimpossible to get a hold of, blew you off, and had more meetings than anyone\ncould bear.  It made me really look outside the company for inspiration and\nmentorship most of the time.\u003c/p\u003e\n\u003ch2 id=\"theres-always-time-for-coffee\"\u003eThere’s always time for coffee \u003ca href=\"#theres-always-time-for-coffee\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhile I don’t have “Always open for a chat” on my\nprofile,  I’ve had many of these types of conversations with my peers.  It\nmight be about something career related or more often how to implement\ncontainers, cloud, and good practices into small teams.\u003c/p\u003e\n\u003cp\u003eI remember a course in college shared the famous quote “There’s always time for\ncoffee” and it stuck with me.  The demonstration goes that no matter how much\nyou fill your day with big rocks and tiny sand particles, there’s always a\nlittle more room for coffee, and he dumps coffee into a jar that he has already\nfilled up.\u003c/p\u003e\n\u003cp\u003eThese conversations often become very impactful.  They can lead to having good\nrelationships or job opportunities.\u003c/p\u003e\n\u003ch2 id=\"if-we-are-not-getting-enough-feedback-move-faster\"\u003eIf we are not getting enough feedback, move faster \u003ca href=\"#if-we-are-not-getting-enough-feedback-move-faster\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/clip/UgkxBSPjfIERR8JcJXCOVXduYCRyn8VO6Kl0?si=MVaRDQROXC0D7Wn9\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg\" alt=\"✂️ rollout faster\"/ data-glightbox=\"description: ✂️ rollout faster\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"take-down-prod-sometimes\"\u003eTake Down Prod Sometimes \u003ca href=\"#take-down-prod-sometimes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis was an interesting take.  None of us really want to take down prod.  No\none is advocating for major outages, but this is is not 2005 shipping out\nsoftware on CD’s anymore.  This take 100% depends on what you do and where you\nwork.  Obviously some sectors cannot take any downtime; nuclear power, cloud\nsystems supporting nuclear power, navigation systems, idk theres a bunch of\nstuff.  I bet if you are reading this that aint you.  You’re probably writing\nsome backend dashboard for the marketing team, or building out a website to\nupload cat photos on … Wait, thats literally what jake is doing here.\u003c/p\u003e\n\u003cp\u003eIdea being if you don’t occasionally cause some small production issues, you\nprobably are not taking enough risk.  You are moving too slow, getting feedback\ntoo late, your competitors just ran past you.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/clip/Ugkx-Jofyn4OmTOkxFzxU__5_7BAeG3O3IkE?si=8yAj3H_ZB-7vjw0W\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg\" alt=\"✂️ take down prod sometimes\"/ data-glightbox=\"description: ✂️ take down prod sometimes\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"go-where-you-are-rare\"\u003eGo where you are rare \u003ca href=\"#go-where-you-are-rare\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI find this interesting.  I’ve found myself within non-software companies doing\nsofware and data analysis most of my career, the amount of value you can bring\nby being that one guy that knows some pandas, containerization, how to run a vm\nis massive in an org that uses excel as its primary database.  The rest of the\norg generally has massive knowledge in the business, but greatly slowed down by\ntheir ability to find value in the data.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/clip/UgkxZHKW3EHYH9Z8qPvyNlLQYN55BkufhmsJ?si=SwkO7bfrE16WFoyN\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg\" alt=\"✂️ go where your rare\"/ data-glightbox=\"description: ✂️ go where your rare\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"do-work-that-you-dont-get-credit-for\"\u003eDo work that you don’t get credit for \u003ca href=\"#do-work-that-you-dont-get-credit-for\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve worked with a lot of people in my 15 years of professional work, and I can\ntell you the worst ones to work with are the ones that focus too much on value.\nEvery ounce of effort they bring needs to be backed by dollars comming into the\nbusiness.  I’ve seen this shake out a number of ways.  You got the guy who sits\non his ass all of January waiting for goals to be set, you got the guy who\nholds everything he knows close to his chest so that he is the one that can\ntake the glory, and you got the guy who wont ever; refactor his code, cleanup,\nlint, update dependencies, and so on; because that does not have direct line to\ndollars coming into the business.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/clip/UgkxFp3xC-SrxNtLw3FW24b26DRhNrMra3m8?si=5I5JhuxwNFKWZsL7\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg\" alt=\"✂️ 20% of time won’t get credit\"/ data-glightbox=\"description: ✂️ 20% of time won’t get credit\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe clip goes a bit further than this, and hints at things that are going to\nenable you and your org to move faster.  You might shave off 2 minutes off of\nci, or docker builds.  You might give everyone an easy way to run dev\ncontainers with production like dependencies in a snap.  You might give them a\nway to clone prod data into a sandbox.  These type of things provide no dollars\nto the company, it’s likely that few will notice but damn they add up to an\nefficient running organization.\u003c/p\u003e\n\u003ch2 id=\"work-diary---the-value-of-writing-things-down\"\u003eWork Diary - the value of writing things down \u003ca href=\"#work-diary---the-value-of-writing-things-down\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis one hits home, for far too long I’ve been in between note taking systems\nand am finally getting [[ marakta ]] setup to build out a really good\nzettelkasten style work notes.  I’ve kinda had this on my blog for a long time,\nbut not fully.  I think the piece that I am missing here is the dumping ground.\nI don’t \u003cstrong\u003eyet\u003c/strong\u003e have a daily notes implementation that lets me just dump idea\nonto a page that I care little about, but is the process of starting something\nbigger, crosslinking between people, meetings, tasks, and launchdocs.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/clip/UgkxBC5Y_WL40hiEHY_zqjOVkLwkSQyyYvcC?si=l_tsY238JstdFSaA\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg\" alt=\"✂️ work diary\"/ data-glightbox=\"description: ✂️ work diary\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI hadn’t heard of the term launchdoc before this, but I took it and I am using\nit.  I generally do an ok doc in the changelog of my products and spice it up\nto go to the announcement chat channel, but I don’t fully keep record of it,\npulling the changelog into a launchdoc gives me that chance to spice it up and\nhave the language it needs to go right into chat.\u003c/p\u003e\n",
      "content_text": "\nJake Bolam principal engineer at Meta, has some of the best career advice for\nthose looking to become principal or just be better at their craft.  This\n[video](https://www.youtube.com/clip/UgkxFp3xC-SrxNtLw3FW24b26DRhNrMra3m8) was\nsuch a banger I had to bring it in as a full post, and not just a thought. It\nwas a random YouTube auto play, something that I probably wouldn't have clicked\non given title an thumbnail, but turned out to be very impactful.  Jake is such\na smart guy with a lot of great insights, and I can tell he thinks really quick\non his feet, he just pulled all of these things out of his head on the fly.\n\n!!! Note \"YT Algorithm Gold\"\n    I don't know what it is about this title and thumbnail, but it gives me \"ex\n    google, ex facebook, ex microsoft, $100M engineer\" vibes in a cringy and\n    not satire kind of way.  I would have never clicked on it, it autoplayed\n    after a podcast and it hit, immediately I'm like who are these guys? subd\n    and started this post it was so good.\n\n## Long On Boarding\n\nJake had a super long period of on boarding at meta, he came in as a seasoned\nleader yet took many months to get going.  This was a phase during or near the\nend of the COVID-19 pandemic and his team was so swamped they were unable to\ngive him time to help him.  He felt his on boarding was taking longer than he\nwanted, and found backend work at Instagram.  Moving to Instagram he jumped in\nand starting making impact quick and found his way moving up the ladder serving\nas tech lead for several teams.\n\n\u003e I grabbed a ton of clips from this video, but did not for this section as it\n\u003e was kinda long.\n\n## Always open for a Chat\n\nAs busy as Jake is, he leaves \"Always open for a chat\" on his internal profile.\nHe does not care about rank into account, the intern can ask for a coffee chat.\nHis key metric is how well is this person receiving information.  If they are\ncoming back with the same questions every 3 months he is going to start telling\nthem he does not have the time.\n\n[![✂️ Always Open for a Chat](https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg)](https://youtube.com/clip/Ugkxjwsds5Z9qqqIlJonyHNZDy4B_ArcLjNx?si=9Oi-ODqqYR215kJn)\n\nI've had a fair amount of personal experience with this.  Early in my career I\nexperience quite a bit of higher ranks feeling untouchable, they were\nimpossible to get a hold of, blew you off, and had more meetings than anyone\ncould bear.  It made me really look outside the company for inspiration and\nmentorship most of the time.\n\n## There's always time for coffee\n\nWhile I don't have \"Always open for a chat\" on my\nprofile,  I've had many of these types of conversations with my peers.  It\nmight be about something career related or more often how to implement\ncontainers, cloud, and good practices into small teams.\n\nI remember a course in college shared the famous quote \"There's always time for\ncoffee\" and it stuck with me.  The demonstration goes that no matter how much\nyou fill your day with big rocks and tiny sand particles, there's always a\nlittle more room for coffee, and he dumps coffee into a jar that he has already\nfilled up.\n\nThese conversations often become very impactful.  They can lead to having good\nrelationships or job opportunities.\n\n## If we are not getting enough feedback, move faster\n\n[![✂️ rollout faster](https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg)](https://youtube.com/clip/UgkxBSPjfIERR8JcJXCOVXduYCRyn8VO6Kl0?si=MVaRDQROXC0D7Wn9)\n\n## Take Down Prod Sometimes\n\nThis was an interesting take.  None of us really want to take down prod.  No\none is advocating for major outages, but this is is not 2005 shipping out\nsoftware on CD's anymore.  This take 100% depends on what you do and where you\nwork.  Obviously some sectors cannot take any downtime; nuclear power, cloud\nsystems supporting nuclear power, navigation systems, idk theres a bunch of\nstuff.  I bet if you are reading this that aint you.  You're probably writing\nsome backend dashboard for the marketing team, or building out a website to\nupload cat photos on ... Wait, thats literally what jake is doing here.\n\nIdea being if you don't occasionally cause some small production issues, you\nprobably are not taking enough risk.  You are moving too slow, getting feedback\ntoo late, your competitors just ran past you.\n\n[![✂️ take down prod sometimes](https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg)](https://youtube.com/clip/Ugkx-Jofyn4OmTOkxFzxU__5_7BAeG3O3IkE?si=8yAj3H_ZB-7vjw0W)\n\n## Go where you are rare\n\nI find this interesting.  I've found myself within non-software companies doing\nsofware and data analysis most of my career, the amount of value you can bring\nby being that one guy that knows some pandas, containerization, how to run a vm\nis massive in an org that uses excel as its primary database.  The rest of the\norg generally has massive knowledge in the business, but greatly slowed down by\ntheir ability to find value in the data.\n\n[![✂️ go where your rare](https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg)](https://youtube.com/clip/UgkxZHKW3EHYH9Z8qPvyNlLQYN55BkufhmsJ?si=SwkO7bfrE16WFoyN)\n\n## Do work that you don't get credit for\n\nI've worked with a lot of people in my 15 years of professional work, and I can\ntell you the worst ones to work with are the ones that focus too much on value.\nEvery ounce of effort they bring needs to be backed by dollars comming into the\nbusiness.  I've seen this shake out a number of ways.  You got the guy who sits\non his ass all of January waiting for goals to be set, you got the guy who\nholds everything he knows close to his chest so that he is the one that can\ntake the glory, and you got the guy who wont ever; refactor his code, cleanup,\nlint, update dependencies, and so on; because that does not have direct line to\ndollars coming into the business.\n\n[![✂️ 20% of time won't get credit](https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg)](https://youtube.com/clip/UgkxFp3xC-SrxNtLw3FW24b26DRhNrMra3m8?si=5I5JhuxwNFKWZsL7)\n\nThe clip goes a bit further than this, and hints at things that are going to\nenable you and your org to move faster.  You might shave off 2 minutes off of\nci, or docker builds.  You might give everyone an easy way to run dev\ncontainers with production like dependencies in a snap.  You might give them a\nway to clone prod data into a sandbox.  These type of things provide no dollars\nto the company, it's likely that few will notice but damn they add up to an\nefficient running organization.\n\n## Work Diary - the value of writing things down\n\nThis one hits home, for far too long I've been in between note taking systems\nand am finally getting [[ marakta ]] setup to build out a really good\nzettelkasten style work notes.  I've kinda had this on my blog for a long time,\nbut not fully.  I think the piece that I am missing here is the dumping ground.\nI don't **yet** have a daily notes implementation that lets me just dump idea\nonto a page that I care little about, but is the process of starting something\nbigger, crosslinking between people, meetings, tasks, and launchdocs.\n\n[![✂️ work diary](https://i.ytimg.com/vi/QUhC5BDZt-E/maxresdefault.jpg)](https://youtube.com/clip/UgkxBC5Y_WL40hiEHY_zqjOVkLwkSQyyYvcC?si=l_tsY238JstdFSaA)\n\nI hadn't heard of the term launchdoc before this, but I took it and I am using\nit.  I generally do an ok doc in the changelog of my products and spice it up\nto go to the announcement chat channel, but I don't fully keep record of it,\npulling the changelog into a launchdoc gives me that chance to spice it up and\nhave the language it needs to go right into chat.\n",
      "summary": "Jake Bolam principal engineer at Meta, has some of the best career advice for those looking to become principal or just be better at their craft. This video...",
      "date_published": "2025-06-30T20:22:08Z",
      "date_modified": "2025-06-30T20:22:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "dev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-725/",
      "url": "https://waylonwalker.com/thought-725/",
      "title": "💭 Forming URIs for Autofill | Bitwarden",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bitwarden.com/help/uri-match-detection/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://bitwarden.com/assets/5FndoP1yuFJUfR7o6DZvLw/a29643e884f9e3dcac7461336c591f17/help-uri-match-detection-og.png\" alt=\"Forming URIs for Autofill | Bitwarden — Find out more about how URI match detection works in the Bitwarden password manager.\" loading=\"lazy\"/ data-glightbox=\"description: Forming URIs for Autofill | Bitwarden — Find out more about how URI match detection works in the Bitwarden password manager.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eForming URIs for Autofill | Bitwarden\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFind out more about how URI match detection works in the Bitwarden password manager.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBitwarden · bitwarden.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFor anyone self hosting a bunch of apps under one domain, I just swapped all of mine to Host matching which includes the full subdomain, and it is glorious to not have 9+ items hit on all of your pages and only the one that you actually want.\u003c/p\u003e\n\u003cp\u003eopen one \u0026gt; edit \u0026gt; gear icon next to url \u0026gt; Host\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bitwarden.com/help/uri-match-detection/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://bitwarden.com/assets/5FndoP1yuFJUfR7o6DZvLw/a29643e884f9e3dcac7461336c591f17/help-uri-match-detection-og.png\" alt=\"Forming URIs for Autofill | Bitwarden — Find out more about how URI match detection works in the Bitwarden password manager.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eForming URIs for Autofill | Bitwarden\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFind out more about how URI match detection works in the Bitwarden password manager.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBitwarden \u0026middot; bitwarden.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFor anyone self hosting a bunch of apps under one domain, I just swapped all of mine to Host matching which includes the full subdomain, and it is glorious to not have 9+ items hit on all of your pages and only the one that you actually want.\n\nopen one \u003e edit \u003e gear icon next to url \u003e Host\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bitwarden.com/help/uri-match-detection/",
      "date_published": "2025-06-30T13:21:15Z",
      "date_modified": "2025-06-30T13:21:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-724/",
      "url": "https://waylonwalker.com/thought-724/",
      "title": "💭 The decline of \"i use vim btw\" - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"RmnqdAidVeE\" title=\"- YouTube\" playlabel=\"Play: - YouTube\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003evim usage is becoming normie level.  Just like \u003ccode\u003earchinstall\u003c/code\u003e made it too easy to install arch and brought normies into the ecosystem.  It killed ArchBTW^TM^, distros like lazyvim have killed vimBTW^TM^.  It used to be that to run arch, vim, nvim you had to read the docs, and go deep on understanding.  running \u003ccode\u003earchinstall\u003c/code\u003eor lazyvim make it so easy to get started that you miss all of the details, you no longer have to understand ctags, quickfix, what an lsp is, or even how to set your own keybindings.  You just use the damn thing, like you would with VSC****.  No shame to anyone who does this, but you are probably missing out on a bunch of really useful features of a very core tool in your workflow.\u003c/p\u003e\n\u003cp\u003eJust discovered Sylvan Franklin in this post and he is cracked, sub now.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"RmnqdAidVeE\" title=\"- YouTube\" playlabel=\"Play: - YouTube\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nvim usage is becoming normie level.  Just like `archinstall` made it too easy to install arch and brought normies into the ecosystem.  It killed ArchBTW^TM^, distros like lazyvim have killed vimBTW^TM^.  It used to be that to run arch, vim, nvim you had to read the docs, and go deep on understanding.  running `archinstall`or lazyvim make it so easy to get started that you miss all of the details, you no longer have to understand ctags, quickfix, what an lsp is, or even how to set your own keybindings.  You just use the damn thing, like you would with VSC****.  No shame to anyone who does this, but you are probably missing out on a bunch of really useful features of a very core tool in your workflow.\n\nJust discovered Sylvan Franklin in this post and he is cracked, sub now.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=RmnqdAidVeE",
      "date_published": "2025-06-29T17:46:52Z",
      "date_modified": "2025-06-29T17:46:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "arch",
        "neovim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-723/",
      "url": "https://waylonwalker.com/thought-723/",
      "title": "💭 distrobox/docs/posts/run_libvirt_in_distrobox.md at main · 89l...",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md\" class=\"glightbox-link\" aria-label=\"https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md\" alt=\"https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md\"/ data-glightbox=\"description: https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eWish I would have saw this guide and provided assembly file for setting up virt-manager in distrobox.  They call out immutable distros like the knew I was coming.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md](/static/https://github.com/89luca89/distrobox/blob/main/docs/posts/run_libvirt_in_distrobox.md)\n\nWish I would have saw this guide and provided assembly file for setting up virt-manager in distrobox.  They call out immutable distros like the knew I was coming.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/89luca89/distrobox/blob/main/docs/posts/run_in_distrobox.md",
      "date_published": "2025-06-29T02:11:28Z",
      "date_modified": "2025-06-29T02:11:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/virt-manager-on-bazzite/",
      "url": "https://waylonwalker.com/virt-manager-on-bazzite/",
      "title": "virt manager on bazzite",
      "content_html": "\u003cp\u003eI got virtual machine manager running on two Bazzite machines today.  It was a\nbit tricky, more than I thought actually.  I ran into all sorts of\nvirtualisation not setup issues when I tried the flatpak.  Then I found that\nBazzite comes with a \u003ccode\u003eujust setup-virtualization\u003c/code\u003e command that does all the\nwork for me.  I tried that and again virtual machine manager was here, but not\nworking, this time it feels like flatpak issues.\u003c/p\u003e\n\u003cp\u003eIn a Hail Mary attempt I got it working by using an ubuntu distrobox container\nto run the UI.  And it worked!\u003c/p\u003e\n\u003ch2 id=\"from-the-host\"\u003efrom the host \u003ca href=\"#from-the-host\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFrom the host we create the container to use from distrobox.  This is an ubuntu\nmachine, it can be any os of your choosing, preferably one that you are\nfamiliar with and contains virt-manager in its package repos.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox create -i ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox enter ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"from-inside-the-distrobox-container\"\u003efrom inside the distrobox container \u003ca href=\"#from-inside-the-distrobox-container\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow that we are in the distrobox we are no longer in an immutable distro and we\ncan easily install anything we want.  I actually like this process.  I might\nhave shit like this that I use for a month or a few months, on a normal distro,\nthis is fully installed on the os, raises the potential of package conflicts\nand lengthens the update time.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt upgrade\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install virtinst virt-manager\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evirt-manager\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"along-the-way\"\u003eAlong the way \u003ca href=\"#along-the-way\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI tried adding myself to the libvirt group, and expicitly setting the socket\npath. After setting up another machine I realized these steps were unnecessary.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo usermod -aG libvirt \u003cspan class=\"nv\"\u003e$USER\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eLIBVIRT_DEFAULT_URI\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;qemu+unix:///system\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003els -l /run/libvirt/libvirt-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evirt-install --version\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAfter fully reading through `ujust setup-virtualization` I realized that it\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eadds me to the libvirt group, so that’s why it is not needed.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"an-even-better-guide\"\u003eAn even Better Guide \u003ca href=\"#an-even-better-guide\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI later found [[ thoughts-723 ]] there is documentation for setting up virtual\nmachine manager in distrobox in the distrobox docs.  It even calls out running\non an immutable distro like bazzite like it knew I was coming.\u003c/p\u003e\n\u003ch2 id=\"full-log\"\u003efull log \u003ca href=\"#full-log\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylon@razorcrest:~$ distrobox create -i ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eImage ubuntu not found.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDo you want to pull the image now? \u003cspan class=\"o\"\u003e[\u003c/span\u003eY/n\u003cspan class=\"o\"\u003e]\u003c/span\u003e: y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eResolved \u003cspan class=\"s2\"\u003e\u0026#34;ubuntu\u0026#34;\u003c/span\u003e as an \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003e/etc/containers/registries.conf.d/000-shortnames.conf\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTrying to pull docker.io/library/ubuntu:latest...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGetting image \u003cspan class=\"nb\"\u003esource\u003c/span\u003e signatures\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCopying blob d9d352c11bbd \u003cspan class=\"k\"\u003edone\u003c/span\u003e   \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCopying config bf16bdcff9 \u003cspan class=\"k\"\u003edone\u003c/span\u003e   \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eWriting manifest to image destination\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebf16bdcff9c96b76a6d417bd8f0a3abe0e55c0ed9bdb3549e906834e2592fd5f\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating \u003cspan class=\"s1\"\u003e\u0026#39;ubuntu\u0026#39;\u003c/span\u003e using image ubuntu  \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDistrobox \u003cspan class=\"s1\"\u003e\u0026#39;ubuntu\u0026#39;\u003c/span\u003e successfully created.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eTo enter, run:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox enter ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylon@razorcrest:~$ distrobox enter ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStarting container...                     \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eInstalling basic packages...              \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up devpts mounts...               \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up read-only mounts...            \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up read-write mounts...           \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up host\u003cspan class=\"s1\"\u003e\u0026#39;s sockets integration...  [ OK ]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003eIntegrating host\u0026#39;\u003c/span\u003es themes, icons, fonts...  \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up distrobox profile...           \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up sudo...                        \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up user groups...                 \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up user\u003cspan class=\"s1\"\u003e\u0026#39;s group list...           [ OK ]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003eSetting up existing user...               [ OK ]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003eEnsuring user\u0026#39;\u003c/span\u003es access...                 \u003cspan class=\"o\"\u003e[\u003c/span\u003e OK \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eContainer Setup Complete!\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ sudo apt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install virtinst\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:1 http://security.ubuntu.com/ubuntu noble-security InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:2 http://archive.ubuntu.com/ubuntu noble InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading package lists... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBuilding dependency tree... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading state information... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e4\u003c/span\u003e packages can be upgraded. Run \u003cspan class=\"s1\"\u003e\u0026#39;apt list --upgradable\u0026#39;\u003c/span\u003e to see them.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading package lists... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBuilding dependency tree... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading state information... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe following additional packages will be installed:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-freedesktop gir1.2-libosinfo-1.0 glib-networking glib-networking-common glib-networking-services\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gstreamer1.0-plugins-base i965-va-driver intel-media-va-driver iso-codes libaio1t64 libasyncns0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libboost-iostreams1.83.0 libboost-thread1.83.0 libburn4t64 libcacard0 libcdparanoia0 libcurl3t64-gnutls\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libdaxctl1 libduktape207 libdw1t64 libflac12t64 libfuse3-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libgtk-vnc-2.0-0 libgvnc-1.0-0 libigdgmm12 libiscsi7 libisoburn1t64 libisofs6t64 libjson-glib-1.0-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libjson-glib-1.0-common libmp3lame0 libmpg123-0t64 libndctl6 libnfs14 libnspr4 libnss3 libnuma1 libogg0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libopus0 liborc-0.4-0t64 libosinfo-1.0-0 libosinfo-l10n libpcsclite1 libphodav-3.0-0 libphodav-3.0-common\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libpmem1 libpmemobj1 libpolkit-gobject-1-0 libproxy1v5 libpulse0 librados2 librbd1 librdmacm1t64 libsndfile1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libsoup-3.0-0 libsoup-3.0-common libspice-client-glib-2.0-8 libspice-client-gtk-3.0-5 libtheora0 libunwind8\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  liburing2 libusb-1.0-0 libusbredirhost1t64 libusbredirparser1t64 libva-x11-2 libva2 libvirt-clients\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-glib-1.0-0 libvirt-glib-1.0-data libvirt-l10n libvirt0 libvisual-0.4-0 libvorbis0a libvorbisenc2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvte-2.91-0 libxslt1.1 libyajl2 mesa-va-drivers osinfo-db pci.ids python3-certifi python3-chardet\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-idna python3-libvirt python3-libxml2 python3-pkg-resources python3-requests python3-urllib3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  qemu-block-extra qemu-utils spice-client-glib-usb-acl-helper usb.ids va-driver-all virt-viewer xorriso\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSuggested packages:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gvfs i965-va-driver-shaders isoquery fuse3 libvisual-0.4-plugins gstreamer1.0-tools opus-tools pcscd pulseaudio\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-good libvirt-clients-qemu libvirt-daemon\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-login-shell python3-setuptools python3-cryptography python3-openssl python3-socks python-requests-doc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-brotli netcat python3-argcomplete xorriso-tcltk jigit cdck\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe following NEW packages will be installed:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-freedesktop gir1.2-libosinfo-1.0 glib-networking glib-networking-common glib-networking-services\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gstreamer1.0-plugins-base i965-va-driver intel-media-va-driver iso-codes libaio1t64 libasyncns0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libboost-iostreams1.83.0 libboost-thread1.83.0 libburn4t64 libcacard0 libcdparanoia0 libcurl3t64-gnutls\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libdaxctl1 libduktape207 libdw1t64 libflac12t64 libfuse3-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libgtk-vnc-2.0-0 libgvnc-1.0-0 libigdgmm12 libiscsi7 libisoburn1t64 libisofs6t64 libjson-glib-1.0-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libjson-glib-1.0-common libmp3lame0 libmpg123-0t64 libndctl6 libnfs14 libnspr4 libnss3 libnuma1 libogg0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libopus0 liborc-0.4-0t64 libosinfo-1.0-0 libosinfo-l10n libpcsclite1 libphodav-3.0-0 libphodav-3.0-common\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libpmem1 libpmemobj1 libpolkit-gobject-1-0 libproxy1v5 libpulse0 librados2 librbd1 librdmacm1t64 libsndfile1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libsoup-3.0-0 libsoup-3.0-common libspice-client-glib-2.0-8 libspice-client-gtk-3.0-5 libtheora0 libunwind8\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  liburing2 libusb-1.0-0 libusbredirhost1t64 libusbredirparser1t64 libva-x11-2 libva2 libvirt-clients\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-glib-1.0-0 libvirt-glib-1.0-data libvirt-l10n libvirt0 libvisual-0.4-0 libvorbis0a libvorbisenc2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvte-2.91-0 libxslt1.1 libyajl2 mesa-va-drivers osinfo-db pci.ids python3-certifi python3-chardet\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-idna python3-libvirt python3-libxml2 python3-pkg-resources python3-requests python3-urllib3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  qemu-block-extra qemu-utils spice-client-glib-usb-acl-helper usb.ids va-driver-all virt-viewer virtinst xorriso\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e upgraded, \u003cspan class=\"m\"\u003e98\u003c/span\u003e newly installed, \u003cspan class=\"m\"\u003e0\u003c/span\u003e to remove and \u003cspan class=\"m\"\u003e4\u003c/span\u003e not upgraded.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNeed to get 34.2 MB of archives.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAfter this operation, \u003cspan class=\"m\"\u003e143\u003c/span\u003e MB of additional disk space will be used.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDo you want to \u003cspan class=\"k\"\u003econtinue\u003c/span\u003e? \u003cspan class=\"o\"\u003e[\u003c/span\u003eY/n\u003cspan class=\"o\"\u003e]\u003c/span\u003e y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:1 http://archive.ubuntu.com/ubuntu noble/main amd64 iso-codes all 4.16.0-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e3,492 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:2 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-pkg-resources all 68.1.2-2ubuntu1.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e168\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:3 http://archive.ubuntu.com/ubuntu noble/main amd64 libfuse3-3 amd64 3.14.0-5build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e83.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:4 http://archive.ubuntu.com/ubuntu noble/main amd64 libnuma1 amd64 2.0.18-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e23.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:5 http://archive.ubuntu.com/ubuntu noble/main amd64 libusb-1.0-0 amd64 2:1.0.27-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e54.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 pci.ids all 0.0~2024.03.31-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e275\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:7 http://archive.ubuntu.com/ubuntu noble/main amd64 usb.ids all 2024.03.18-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e223\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:8 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-freedesktop amd64 1.80.1-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e49.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:9 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libcurl3t64-gnutls amd64 8.5.0-2ubuntu10.6 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e333\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:10 http://archive.ubuntu.com/ubuntu noble/main amd64 libduktape207 amd64 2.7.0+tests-0ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e143\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:11 http://archive.ubuntu.com/ubuntu noble/main amd64 libproxy1v5 amd64 0.5.4-4build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e26.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:12 http://archive.ubuntu.com/ubuntu noble/main amd64 glib-networking-common all 2.80.0-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e6,702 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:13 http://archive.ubuntu.com/ubuntu noble/main amd64 glib-networking-services amd64 2.80.0-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e12.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:14 http://archive.ubuntu.com/ubuntu noble/main amd64 glib-networking amd64 2.80.0-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e64.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:15 http://archive.ubuntu.com/ubuntu noble/main amd64 libcdparanoia0 amd64 3.10.2+debian-14build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e48.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:16 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdw1t64 amd64 0.190-1.1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e261\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:17 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libunwind8 amd64 1.6.2-3build1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e55.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:18 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer1.0-0 amd64 1.24.2-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,165 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:19 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liborc-0.4-0t64 amd64 1:0.4.38-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e207\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:20 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer-plugins-base1.0-0 amd64 1.24.2-1ubuntu0.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e862\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:21 http://archive.ubuntu.com/ubuntu noble/main amd64 libogg0 amd64 1.3.5-3build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e22.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:22 http://archive.ubuntu.com/ubuntu noble/main amd64 libopus0 amd64 1.4-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e208\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:23 http://archive.ubuntu.com/ubuntu noble/main amd64 libtheora0 amd64 1.1.1+dfsg.1-16.1build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e211\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:24 http://archive.ubuntu.com/ubuntu noble/main amd64 libvisual-0.4-0 amd64 0.4.2-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e115\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:25 http://archive.ubuntu.com/ubuntu noble/main amd64 libvorbis0a amd64 1.3.7-1build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e97.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:26 http://archive.ubuntu.com/ubuntu noble/main amd64 libvorbisenc2 amd64 1.3.7-1build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e80.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:27 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-plugins-base amd64 1.24.2-1ubuntu0.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e721\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:28 http://archive.ubuntu.com/ubuntu noble/universe amd64 libva2 amd64 2.20.0-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e66.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:29 http://archive.ubuntu.com/ubuntu noble/universe amd64 libigdgmm12 amd64 22.3.17+ds1-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e145\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:30 http://archive.ubuntu.com/ubuntu noble/universe amd64 intel-media-va-driver amd64 24.1.0+dfsg1-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e4,022 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:31 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libaio1t64 amd64 0.3.113-6build1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e7,210 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:32 http://archive.ubuntu.com/ubuntu noble/main amd64 libasyncns0 amd64 0.8-6build4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e11.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:33 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-iostreams1.83.0 amd64 1.83.0-2.1ubuntu3.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e259\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:34 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-thread1.83.0 amd64 1.83.0-2.1ubuntu3.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e276\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:35 http://archive.ubuntu.com/ubuntu noble/main amd64 libburn4t64 amd64 1.5.6-1.1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e158\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:36 http://archive.ubuntu.com/ubuntu noble/main amd64 libnspr4 amd64 2:4.35-1.1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e117\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:37 http://archive.ubuntu.com/ubuntu noble/main amd64 libnss3 amd64 2:3.98-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,445 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:38 http://archive.ubuntu.com/ubuntu noble/main amd64 libpcsclite1 amd64 2.0.3-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e21.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:39 http://archive.ubuntu.com/ubuntu noble/main amd64 libcacard0 amd64 1:2.8.0-3build4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e36.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:40 http://archive.ubuntu.com/ubuntu noble/main amd64 libdaxctl1 amd64 77-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e21.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:41 http://archive.ubuntu.com/ubuntu noble/main amd64 libflac12t64 amd64 1.4.3+ds-2.1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e197\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:42 http://archive.ubuntu.com/ubuntu noble/main amd64 libmp3lame0 amd64 3.100-6build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e142\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:43 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpg123-0t64 amd64 1.32.5-1ubuntu1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e169\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:44 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsndfile1 amd64 1.2.2-1ubuntu5.24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e209\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:45 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpulse0 amd64 1:16.1+dfsg1-2ubuntu10.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e292\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:46 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgvnc-1.0-0 amd64 1.3.1-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e67.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:47 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgtk-vnc-2.0-0 amd64 1.3.1-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e28.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:48 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 librdmacm1t64 amd64 50.0-2ubuntu0.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e70.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:49 http://archive.ubuntu.com/ubuntu noble/main amd64 libiscsi7 amd64 1.19.0-3build4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e68.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:50 http://archive.ubuntu.com/ubuntu noble/main amd64 libisofs6t64 amd64 1.5.6.pl01-1.1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e220\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:51 http://archive.ubuntu.com/ubuntu noble/main amd64 libisoburn1t64 amd64 1:1.5.6-1.1ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e405\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:52 http://archive.ubuntu.com/ubuntu noble/main amd64 libjson-glib-1.0-common all 1.8.0-2build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e4,244 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:53 http://archive.ubuntu.com/ubuntu noble/main amd64 libjson-glib-1.0-0 amd64 1.8.0-2build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e68.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:54 http://archive.ubuntu.com/ubuntu noble/main amd64 libndctl6 amd64 77-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e62.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:55 http://archive.ubuntu.com/ubuntu noble/main amd64 libnfs14 amd64 5.0.2-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e109\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:56 http://archive.ubuntu.com/ubuntu noble/universe amd64 libphodav-3.0-common all 3.0-8build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e14.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:57 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsoup-3.0-common all 3.4.4-5ubuntu0.4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e11.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:58 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsoup-3.0-0 amd64 3.4.4-5ubuntu0.4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e290\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:59 http://archive.ubuntu.com/ubuntu noble/universe amd64 libphodav-3.0-0 amd64 3.0-8build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e29.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:60 http://archive.ubuntu.com/ubuntu noble/main amd64 libpmem1 amd64 1.13.1-1.1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e84.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:61 http://archive.ubuntu.com/ubuntu noble/main amd64 libpmemobj1 amd64 1.13.1-1.1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e116\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:62 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpolkit-gobject-1-0 amd64 124-2ubuntu1.24.04.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e49.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:63 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 librados2 amd64 19.2.0-0ubuntu0.24.04.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e3,972 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:64 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 librbd1 amd64 19.2.0-0ubuntu0.24.04.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e3,351 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:65 http://archive.ubuntu.com/ubuntu noble/universe amd64 spice-client-glib-usb-acl-helper amd64 0.42-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e12.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:66 http://archive.ubuntu.com/ubuntu noble/main amd64 libusbredirparser1t64 amd64 0.13.0-2.1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e16.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:67 http://archive.ubuntu.com/ubuntu noble/main amd64 libusbredirhost1t64 amd64 0.13.0-2.1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e20.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:68 http://archive.ubuntu.com/ubuntu noble/universe amd64 libspice-client-glib-2.0-8 amd64 0.42-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e314\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:69 http://archive.ubuntu.com/ubuntu noble/universe amd64 libva-x11-2 amd64 2.20.0-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e12.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:70 http://archive.ubuntu.com/ubuntu noble/universe amd64 libspice-client-gtk-3.0-5 amd64 0.42-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e56.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:71 http://archive.ubuntu.com/ubuntu noble/main amd64 liburing2 amd64 2.5-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e21.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:72 http://archive.ubuntu.com/ubuntu noble/main amd64 libyajl2 amd64 2.1.0-5build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e20.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:73 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt0 amd64 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,826 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:74 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-clients amd64 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e438\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:75 http://archive.ubuntu.com/ubuntu noble/universe amd64 libvirt-glib-1.0-data all 5.0.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e17.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:76 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-l10n all 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,150 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:77 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvte-2.91-0 amd64 0.76.0-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e230\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:78 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libxslt1.1 amd64 1.1.39-0exp1ubuntu0.24.04.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e167\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:79 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 mesa-va-drivers amd64 24.2.8-1ubuntu1~24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e19.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:80 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 osinfo-db all 0.20250124-0ubuntu0.24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e176\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:81 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-certifi all 2023.11.17-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e165\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:82 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-chardet all 5.2.0+dfsg-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e117\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:83 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-idna all 3.6-2ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e49.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:84 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-libvirt amd64 10.0.0-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e164\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:85 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-libxml2 amd64 2.9.14+dfsg-1.3ubuntu3.3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e140\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:86 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-urllib3 all 2.0.7-1ubuntu0.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e93.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:87 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-requests all 2.31.0+dfsg-1ubuntu1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e50.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:88 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-utils amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e2,220 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:89 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-block-extra amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e111\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:90 http://archive.ubuntu.com/ubuntu noble/universe amd64 i965-va-driver amd64 2.4.1+dfsg1-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e332\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:91 http://archive.ubuntu.com/ubuntu noble/universe amd64 va-driver-all amd64 2.20.0-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e4,844 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:92 http://archive.ubuntu.com/ubuntu noble/universe amd64 libvirt-glib-1.0-0 amd64 5.0.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e121\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:93 http://archive.ubuntu.com/ubuntu noble/universe amd64 virt-viewer amd64 11.0-3build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e285\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:94 http://archive.ubuntu.com/ubuntu noble/main amd64 xorriso amd64 1:1.5.6-1.1ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e297\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:95 http://archive.ubuntu.com/ubuntu noble/universe amd64 libosinfo-l10n all 1.11.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e50.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:96 http://archive.ubuntu.com/ubuntu noble/universe amd64 libosinfo-1.0-0 amd64 1.11.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e91.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:97 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-libosinfo-1.0 amd64 1.11.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e18.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:98 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 virtinst all 1:4.1.0-3ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e891\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFetched 34.2 MB in 3s \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.8 MB/s\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExtracting templates from packages: 100%\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package iso-codes.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003eReading database ... \u003cspan class=\"m\"\u003e26588\u003c/span\u003e files and directories currently installed.\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../00-iso-codes_4.16.0-1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking iso-codes \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.16.0-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-pkg-resources.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../01-python3-pkg-resources_68.1.2-2ubuntu1.2_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-pkg-resources \u003cspan class=\"o\"\u003e(\u003c/span\u003e68.1.2-2ubuntu1.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libfuse3-3:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../02-libfuse3-3_3.14.0-5build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libfuse3-3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.14.0-5build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnuma1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../03-libnuma1_2.0.18-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnuma1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.0.18-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libusb-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../04-libusb-1.0-0_2%3a1.0.27-1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libusb-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.0.27-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package pci.ids.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../05-pci.ids_0.0~2024.03.31-1ubuntu0.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking pci.ids \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.0~2024.03.31-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package usb.ids.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../06-usb.ids_2024.03.18-1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking usb.ids \u003cspan class=\"o\"\u003e(\u003c/span\u003e2024.03.18-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-freedesktop:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../07-gir1.2-freedesktop_1.80.1-1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-freedesktop:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.80.1-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libcurl3t64-gnutls:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../08-libcurl3t64-gnutls_8.5.0-2ubuntu10.6_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libcurl3t64-gnutls:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e8.5.0-2ubuntu10.6\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libduktape207:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../09-libduktape207_2.7.0+tests-0ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libduktape207:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.7.0+tests-0ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libproxy1v5:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../10-libproxy1v5_0.5.4-4build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libproxy1v5:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.4-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package glib-networking-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../11-glib-networking-common_2.80.0-1build1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking glib-networking-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package glib-networking-services.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../12-glib-networking-services_2.80.0-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking glib-networking-services \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package glib-networking:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../13-glib-networking_2.80.0-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking glib-networking:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libcdparanoia0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../14-libcdparanoia0_3.10.2+debian-14build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libcdparanoia0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.10.2+debian-14build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdw1t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../15-libdw1t64_0.190-1.1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdw1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.190-1.1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libunwind8:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../16-libunwind8_1.6.2-3build1.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libunwind8:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.6.2-3build1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgstreamer1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../17-libgstreamer1.0-0_1.24.2-1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgstreamer1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package liborc-0.4-0t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../18-liborc-0.4-0t64_1%3a0.4.38-1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking liborc-0.4-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:0.4.38-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgstreamer-plugins-base1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../19-libgstreamer-plugins-base1.0-0_1.24.2-1ubuntu0.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgstreamer-plugins-base1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libogg0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../20-libogg0_1.3.5-3build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libogg0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.5-3build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libopus0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../21-libopus0_1.4-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libopus0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.4-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libtheora0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../22-libtheora0_1.1.1+dfsg.1-16.1build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libtheora0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.1.1+dfsg.1-16.1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvisual-0.4-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../23-libvisual-0.4-0_0.4.2-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvisual-0.4-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.4.2-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvorbis0a:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../24-libvorbis0a_1.3.7-1build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvorbis0a:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.7-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvorbisenc2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../25-libvorbisenc2_1.3.7-1build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvorbisenc2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.7-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gstreamer1.0-plugins-base:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../26-gstreamer1.0-plugins-base_1.24.2-1ubuntu0.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gstreamer1.0-plugins-base:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libva2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../27-libva2_2.20.0-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libva2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.20.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libigdgmm12:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../28-libigdgmm12_22.3.17+ds1-1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libigdgmm12:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e22.3.17+ds1-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package intel-media-va-driver:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../29-intel-media-va-driver_24.1.0+dfsg1-1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking intel-media-va-driver:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e24.1.0+dfsg1-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libaio1t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../30-libaio1t64_0.3.113-6build1.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libaio1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.3.113-6build1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libasyncns0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../31-libasyncns0_0.8-6build4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libasyncns0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.8-6build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libboost-iostreams1.83.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../32-libboost-iostreams1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libboost-iostreams1.83.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.83.0-2.1ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libboost-thread1.83.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../33-libboost-thread1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libboost-thread1.83.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.83.0-2.1ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libburn4t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../34-libburn4t64_1.5.6-1.1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libburn4t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.5.6-1.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnspr4:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../35-libnspr4_2%3a4.35-1.1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnspr4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:4.35-1.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnss3:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../36-libnss3_2%3a3.98-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnss3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:3.98-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpcsclite1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../37-libpcsclite1_2.0.3-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpcsclite1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.0.3-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libcacard0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../38-libcacard0_1%3a2.8.0-3build4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libcacard0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:2.8.0-3build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdaxctl1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../39-libdaxctl1_77-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdaxctl1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e77-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libflac12t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../40-libflac12t64_1.4.3+ds-2.1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libflac12t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.4.3+ds-2.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libmp3lame0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../41-libmp3lame0_3.100-6build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libmp3lame0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.100-6build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libmpg123-0t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../42-libmpg123-0t64_1.32.5-1ubuntu1.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libmpg123-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.32.5-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libsndfile1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../43-libsndfile1_1.2.2-1ubuntu5.24.04.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libsndfile1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.2-1ubuntu5.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpulse0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../44-libpulse0_1%3a16.1+dfsg1-2ubuntu10.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpulse0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:16.1+dfsg1-2ubuntu10.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgvnc-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../45-libgvnc-1.0-0_1.3.1-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgvnc-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgtk-vnc-2.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../46-libgtk-vnc-2.0-0_1.3.1-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgtk-vnc-2.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package librdmacm1t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../47-librdmacm1t64_50.0-2ubuntu0.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking librdmacm1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e50.0-2ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libiscsi7:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../48-libiscsi7_1.19.0-3build4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libiscsi7:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.19.0-3build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libisofs6t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../49-libisofs6t64_1.5.6.pl01-1.1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libisofs6t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.5.6.pl01-1.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libisoburn1t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../50-libisoburn1t64_1%3a1.5.6-1.1ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libisoburn1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:1.5.6-1.1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libjson-glib-1.0-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../51-libjson-glib-1.0-common_1.8.0-2build2_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libjson-glib-1.0-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libjson-glib-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../52-libjson-glib-1.0-0_1.8.0-2build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libjson-glib-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libndctl6:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../53-libndctl6_77-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libndctl6:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e77-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnfs14:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../54-libnfs14_5.0.2-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnfs14:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.2-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libphodav-3.0-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../55-libphodav-3.0-common_3.0-8build3_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libphodav-3.0-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.0-8build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libsoup-3.0-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../56-libsoup-3.0-common_3.4.4-5ubuntu0.4_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libsoup-3.0-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.4.4-5ubuntu0.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libsoup-3.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../57-libsoup-3.0-0_3.4.4-5ubuntu0.4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libsoup-3.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.4.4-5ubuntu0.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libphodav-3.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../58-libphodav-3.0-0_3.0-8build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libphodav-3.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.0-8build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpmem1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../59-libpmem1_1.13.1-1.1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpmem1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpmemobj1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../60-libpmemobj1_1.13.1-1.1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpmemobj1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpolkit-gobject-1-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../61-libpolkit-gobject-1-0_124-2ubuntu1.24.04.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpolkit-gobject-1-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e124-2ubuntu1.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package librados2.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../62-librados2_19.2.0-0ubuntu0.24.04.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking librados2 \u003cspan class=\"o\"\u003e(\u003c/span\u003e19.2.0-0ubuntu0.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package librbd1.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../63-librbd1_19.2.0-0ubuntu0.24.04.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking librbd1 \u003cspan class=\"o\"\u003e(\u003c/span\u003e19.2.0-0ubuntu0.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package spice-client-glib-usb-acl-helper.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../64-spice-client-glib-usb-acl-helper_0.42-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking spice-client-glib-usb-acl-helper \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libusbredirparser1t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../65-libusbredirparser1t64_0.13.0-2.1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libusbredirparser1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.13.0-2.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libusbredirhost1t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../66-libusbredirhost1t64_0.13.0-2.1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libusbredirhost1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.13.0-2.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libspice-client-glib-2.0-8:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../67-libspice-client-glib-2.0-8_0.42-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libspice-client-glib-2.0-8:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libva-x11-2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../68-libva-x11-2_2.20.0-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libva-x11-2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.20.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libspice-client-gtk-3.0-5:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../69-libspice-client-gtk-3.0-5_0.42-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libspice-client-gtk-3.0-5:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package liburing2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../70-liburing2_2.5-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking liburing2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.5-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libyajl2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../71-libyajl2_2.1.0-5build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libyajl2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.1.0-5build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../72-libvirt0_10.0.0-2ubuntu8.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-clients.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../73-libvirt-clients_10.0.0-2ubuntu8.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-clients \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-glib-1.0-data.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../74-libvirt-glib-1.0-data_5.0.0-2build3_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-glib-1.0-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-l10n.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../75-libvirt-l10n_10.0.0-2ubuntu8.7_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-l10n \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvte-2.91-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../76-libvte-2.91-0_0.76.0-1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvte-2.91-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.76.0-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libxslt1.1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../77-libxslt1.1_1.1.39-0exp1ubuntu0.24.04.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libxslt1.1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.1.39-0exp1ubuntu0.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package mesa-va-drivers:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../78-mesa-va-drivers_24.2.8-1ubuntu1~24.04.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking mesa-va-drivers:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e24.2.8-1ubuntu1~24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package osinfo-db.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../79-osinfo-db_0.20250124-0ubuntu0.24.04.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking osinfo-db \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.20250124-0ubuntu0.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-certifi.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../80-python3-certifi_2023.11.17-1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-certifi \u003cspan class=\"o\"\u003e(\u003c/span\u003e2023.11.17-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-chardet.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../81-python3-chardet_5.2.0+dfsg-1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-chardet \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.2.0+dfsg-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-idna.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../82-python3-idna_3.6-2ubuntu0.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-idna \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.6-2ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-libvirt.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../83-python3-libvirt_10.0.0-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-libvirt \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-libxml2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../84-python3-libxml2_2.9.14+dfsg-1.3ubuntu3.3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-libxml2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.9.14+dfsg-1.3ubuntu3.3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-urllib3.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../85-python3-urllib3_2.0.7-1ubuntu0.2_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-urllib3 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.0.7-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-requests.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../86-python3-requests_2.31.0+dfsg-1ubuntu1.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-requests \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.31.0+dfsg-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-utils.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../87-qemu-utils_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-utils \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-block-extra.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../88-qemu-block-extra_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-block-extra \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package i965-va-driver:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../89-i965-va-driver_2.4.1+dfsg1-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking i965-va-driver:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.4.1+dfsg1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package va-driver-all:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../90-va-driver-all_2.20.0-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking va-driver-all:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.20.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-glib-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../91-libvirt-glib-1.0-0_5.0.0-2build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-glib-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package virt-viewer.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../92-virt-viewer_11.0-3build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking virt-viewer \u003cspan class=\"o\"\u003e(\u003c/span\u003e11.0-3build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package xorriso.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../93-xorriso_1%3a1.5.6-1.1ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking xorriso \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:1.5.6-1.1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libosinfo-l10n.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../94-libosinfo-l10n_1.11.0-2build3_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libosinfo-l10n \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.11.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libosinfo-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../95-libosinfo-1.0-0_1.11.0-2build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libosinfo-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.11.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-libosinfo-1.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../96-gir1.2-libosinfo-1.0_1.11.0-2build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-libosinfo-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.11.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package virtinst.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../97-virtinst_1%3a4.1.0-3ubuntu0.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking virtinst \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:4.1.0-3ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-pkg-resources \u003cspan class=\"o\"\u003e(\u003c/span\u003e68.1.2-2ubuntu1.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libcdparanoia0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.10.2+debian-14build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up pci.ids \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.0~2024.03.31-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-freedesktop:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.80.1-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libogg0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.5-3build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libphodav-3.0-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.0-8build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvisual-0.4-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.4.2-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libyajl2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.1.0-5build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libcurl3t64-gnutls:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e8.5.0-2ubuntu10.6\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libboost-thread1.83.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.83.0-2.1ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libigdgmm12:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e22.3.17+ds1-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libsoup-3.0-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.4.4-5ubuntu0.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libmpg123-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.32.5-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvte-2.91-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.76.0-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libunwind8:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.6.2-3build1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnfs14:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.2-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up liborc-0.4-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:0.4.38-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdw1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.190-1.1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-libxml2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.9.14+dfsg-1.3ubuntu3.3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-chardet \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.2.0+dfsg-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-glib-1.0-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libva2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.20.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-certifi \u003cspan class=\"o\"\u003e(\u003c/span\u003e2023.11.17-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnspr4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:4.35-1.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libboost-iostreams1.83.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.83.0-2.1ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libopus0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.4-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up intel-media-va-driver:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e24.1.0+dfsg1-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvorbis0a:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.7-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-idna \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.6-2ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up usb.ids \u003cspan class=\"o\"\u003e(\u003c/span\u003e2024.03.18-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up osinfo-db \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.20250124-0ubuntu0.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpcsclite1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.0.3-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libfuse3-3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.14.0-5build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdaxctl1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e77-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-urllib3 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.0.7-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnuma1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.0.18-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libaio1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.3.113-6build1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-glib-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libisofs6t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.5.6.pl01-1.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libduktape207:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.7.0+tests-0ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libasyncns0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.8-6build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libusbredirparser1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.13.0-2.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libtheora0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.1.1+dfsg.1-16.1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libxslt1.1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.1.39-0exp1ubuntu0.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libburn4t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.5.6-1.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libndctl6:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e77-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up librdmacm1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e50.0-2ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libjson-glib-1.0-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libflac12t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.4.3+ds-2.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libusb-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.0.27-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up mesa-va-drivers:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e24.2.8-1ubuntu1~24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up glib-networking-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up liburing2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.5-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libiscsi7:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.19.0-3build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libisoburn1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:1.5.6-1.1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up xorriso \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:1.5.6-1.1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpmem1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libva-x11-2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.20.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up iso-codes \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.16.0-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpolkit-gobject-1-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e124-2ubuntu1.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgstreamer1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetcap worked! gst-ptp-helper is not suid!\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libmp3lame0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.100-6build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up i965-va-driver:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.4.1+dfsg1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libosinfo-l10n \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.11.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvorbisenc2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.7-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up librados2 \u003cspan class=\"o\"\u003e(\u003c/span\u003e19.2.0-0ubuntu0.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libproxy1v5:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.4-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-libvirt \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-clients \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up spice-client-glib-usb-acl-helper \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgstreamer-plugins-base1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnss3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:3.98-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libcacard0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:2.8.0-3build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libusbredirhost1t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.13.0-2.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libjson-glib-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gstreamer1.0-plugins-base:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-l10n \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up va-driver-all:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.20.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-requests \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.31.0+dfsg-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpmemobj1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1.1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up librbd1 \u003cspan class=\"o\"\u003e(\u003c/span\u003e19.2.0-0ubuntu0.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libsndfile1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.2-1ubuntu5.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-utils \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-block-extra \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/multi-user.target.wants/run-qemu.mount → /usr/lib/systemd/system/run-qemu.mount\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up glib-networking-services \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpulse0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:16.1+dfsg1-2ubuntu10.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgvnc-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up glib-networking:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgtk-vnc-2.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libsoup-3.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.4.4-5ubuntu0.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libphodav-3.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.0-8build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libosinfo-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.11.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-libosinfo-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.11.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libspice-client-glib-2.0-8:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up virtinst \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:4.1.0-3ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libspice-client-gtk-3.0-5:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up virt-viewer \u003cspan class=\"o\"\u003e(\u003c/span\u003e11.0-3build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e libc-bin \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.39-0ubuntu8.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e man-db \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.12.0-4build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e libglib2.0-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-6ubuntu3.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e shared-mime-info \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.4-4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e hicolor-icon-theme \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.17-2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ virt-install --version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evirsh list --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e4.1.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eerror: failed to connect to the hypervisor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eerror: binary \u003cspan class=\"s1\"\u003e\u0026#39;/usr/sbin/libvirtd\u0026#39;\u003c/span\u003e does not exist in \u003cspan class=\"nv\"\u003e$PATH\u003c/span\u003e: No such file or directory\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003elogout\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylon@razorcrest:~$ distrobox enter --additional-flags \u003cspan class=\"s2\"\u003e\u0026#34;--device /dev/kvm\u0026#34;\u003c/span\u003e ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eError: unknown flag: --device\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSee \u003cspan class=\"s1\"\u003e\u0026#39;podman exec --help\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylon@razorcrest:~$ distrobox enter ubuntu\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ ls -l /run/libvirt/\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecommon/               libvirt-sock          nodedev/              secrets/              virtlogd-admin-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehostdevmgr/           libvirt-sock-ro       nwfilter/             storage/              virtlogd-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einterface/            lxc/                  nwfilter-binding/     virtlockd-admin-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003elibvirt-admin-sock    network/              qemu/                 virtlockd-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ ls -l /run/libvirt/libvirt-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esrw-rw-rw-. \u003cspan class=\"m\"\u003e1\u003c/span\u003e nobody nogroup \u003cspan class=\"m\"\u003e0\u003c/span\u003e Jun \u003cspan class=\"m\"\u003e27\u003c/span\u003e 11:09 /run/libvirt/libvirt-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ sudo usermod -aG libvirt \u003cspan class=\"nv\"\u003e$USER\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eusermod: group \u003cspan class=\"s1\"\u003e\u0026#39;libvirt\u0026#39;\u003c/span\u003e does not exist\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ \u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eLIBVIRT_DEFAULT_URI\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;qemu+unix:///system\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evirsh list --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Id   Name   State\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--------------------\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ ls -l /run/libvirt/libvirt-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esrw-rw-rw-. \u003cspan class=\"m\"\u003e1\u003c/span\u003e nobody nogroup \u003cspan class=\"m\"\u003e0\u003c/span\u003e Jun \u003cspan class=\"m\"\u003e27\u003c/span\u003e 11:09 /run/libvirt/libvirt-sock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ virt-install --version\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evirsh list --all\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e4.1.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Id   Name   State\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--------------------\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ sudo apt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install virt-manager -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:1 http://security.ubuntu.com/ubuntu noble-security InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:2 http://archive.ubuntu.com/ubuntu noble InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eHit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading package lists... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBuilding dependency tree... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading state information... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e4\u003c/span\u003e packages can be upgraded. Run \u003cspan class=\"s1\"\u003e\u0026#39;apt list --upgradable\u0026#39;\u003c/span\u003e to see them.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading package lists... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBuilding dependency tree... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eReading state information... Done\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe following additional packages will be installed:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  acl alsa-topology-conf alsa-ucm-conf cpu-checker dmeventd dmidecode dns-root-data dnsmasq-base gettext-base\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-atk-1.0 gir1.2-ayatanaappindicator3-0.1 gir1.2-gdkpixbuf-2.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-gtk-vnc-2.0 gir1.2-gtksource-4 gir1.2-harfbuzz-0.0 gir1.2-libvirt-glib-1.0 gir1.2-pango-1.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-spiceclientglib-2.0 gir1.2-spiceclientgtk-3.0 gir1.2-vte-2.91 gstreamer1.0-plugins-good gstreamer1.0-x\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  iptables ipxe-qemu ipxe-qemu-256k-compat-efi-roms libaa1 libasound2-data libasound2t64 libavc1394-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbrlapi0.8 libcaca0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libdbusmenu-glib4 libdbusmenu-gtk3-4 libdecor-0-0 libdecor-0-plugin-1-gtk libdevmapper-event1.02.1 libdv4t64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libfdt1 libgstreamer-plugins-good1.0-0 libgtksourceview-4-0 libgtksourceview-4-common libgudev-1.0-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libharfbuzz-gobject0 libiec61883-0 libip4tc2 libip6tc2 libjack-jackd2-0 liblvm2cmd2.03 libnetfilter-conntrack3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libnfnetlink0 libnftables1 libnftnl11 libnss-mymachines libpangoxft-1.0-0 libparted2t64 libpipewire-0.3-0t64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libpipewire-0.3-common libpolkit-agent-1-0 libraw1394-11 libsamplerate0 libsdl2-2.0-0 libshout3 libslang2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libslirp0 libspa-0.2-modules libspeex1 libspice-server1 libtag1v5 libtag1v5-vanilla libtpms0 libtwolame0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libv4l-0t64 libv4lconvert0t64 libvirglrenderer1 libvirt-daemon libvirt-daemon-config-network\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-daemon-config-nwfilter libvirt-daemon-driver-qemu libvirt-daemon-system libvirt-daemon-system-systemd\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvpx9 libwavpack1 libwebrtc-audio-processing1 libxft2 libxml2-utils libxss1 libxv1 logrotate lvm2 mdevctl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  msr-tools netcat-openbsd nftables ovmf parted polkitd python3-cairo python3-gi-cairo qemu-system-common\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  qemu-system-data qemu-system-gui qemu-system-modules-opengl qemu-system-modules-spice qemu-system-x86 seabios\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  sgml-base swtpm swtpm-tools systemd-container systemd-hwe-hwdb thin-provisioning-tools udev xml-core\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSuggested packages:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  firewalld kmod alsa-utils libasound2-plugins libdv-bin oss-compat jackd2 libparted-dev libparted-i18n pipewire\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libraw1394-doc xdg-utils speex gstreamer1.0-libav gstreamer1.0-plugins-ugly\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-daemon-driver-storage-gluster libvirt-daemon-driver-storage-iscsi-direct\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-daemon-driver-storage-rbd libvirt-daemon-driver-storage-zfs libvirt-daemon-driver-lxc\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-daemon-driver-vbox libvirt-daemon-driver-xen numad passt apparmor auditd nfs-common open-iscsi pm-utils\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  systemtap zfsutils bsd-mailx \u003cspan class=\"p\"\u003e|\u003c/span\u003e mailx parted-doc polkitd-pkla samba vde2 sgml-base-doc trousers gir1.2-secret-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gnome-keyring python3-guestfs ssh-askpass debhelper\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe following NEW packages will be installed:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  acl alsa-topology-conf alsa-ucm-conf cpu-checker dmeventd dmidecode dns-root-data dnsmasq-base gettext-base\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-atk-1.0 gir1.2-ayatanaappindicator3-0.1 gir1.2-gdkpixbuf-2.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-gtk-vnc-2.0 gir1.2-gtksource-4 gir1.2-harfbuzz-0.0 gir1.2-libvirt-glib-1.0 gir1.2-pango-1.0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  gir1.2-spiceclientglib-2.0 gir1.2-spiceclientgtk-3.0 gir1.2-vte-2.91 gstreamer1.0-plugins-good gstreamer1.0-x\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  iptables ipxe-qemu ipxe-qemu-256k-compat-efi-roms libaa1 libasound2-data libasound2t64 libavc1394-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbrlapi0.8 libcaca0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libdbusmenu-glib4 libdbusmenu-gtk3-4 libdecor-0-0 libdecor-0-plugin-1-gtk libdevmapper-event1.02.1 libdv4t64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libfdt1 libgstreamer-plugins-good1.0-0 libgtksourceview-4-0 libgtksourceview-4-common libgudev-1.0-0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libharfbuzz-gobject0 libiec61883-0 libip4tc2 libip6tc2 libjack-jackd2-0 liblvm2cmd2.03 libnetfilter-conntrack3\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libnfnetlink0 libnftables1 libnftnl11 libnss-mymachines libpangoxft-1.0-0 libparted2t64 libpipewire-0.3-0t64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libpipewire-0.3-common libpolkit-agent-1-0 libraw1394-11 libsamplerate0 libsdl2-2.0-0 libshout3 libslang2\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libslirp0 libspa-0.2-modules libspeex1 libspice-server1 libtag1v5 libtag1v5-vanilla libtpms0 libtwolame0\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libv4l-0t64 libv4lconvert0t64 libvirglrenderer1 libvirt-daemon libvirt-daemon-config-network\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvirt-daemon-config-nwfilter libvirt-daemon-driver-qemu libvirt-daemon-system libvirt-daemon-system-systemd\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libvpx9 libwavpack1 libwebrtc-audio-processing1 libxft2 libxml2-utils libxss1 libxv1 logrotate lvm2 mdevctl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  msr-tools netcat-openbsd nftables ovmf parted polkitd python3-cairo python3-gi-cairo qemu-system-common\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  qemu-system-data qemu-system-gui qemu-system-modules-opengl qemu-system-modules-spice qemu-system-x86 seabios\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  sgml-base swtpm swtpm-tools systemd-container systemd-hwe-hwdb thin-provisioning-tools udev virt-manager\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  xml-core\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"m\"\u003e0\u003c/span\u003e upgraded, \u003cspan class=\"m\"\u003e119\u003c/span\u003e newly installed, \u003cspan class=\"m\"\u003e0\u003c/span\u003e to remove and \u003cspan class=\"m\"\u003e4\u003c/span\u003e not upgraded.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNeed to get 43.2 MB of archives.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAfter this operation, \u003cspan class=\"m\"\u003e180\u003c/span\u003e MB of additional disk space will be used.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:1 http://archive.ubuntu.com/ubuntu noble/main amd64 sgml-base all 1.31 \u003cspan class=\"o\"\u003e[\u003c/span\u003e11.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:2 http://archive.ubuntu.com/ubuntu noble/main amd64 libslang2 amd64 2.3.3-3build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e506\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:3 http://archive.ubuntu.com/ubuntu noble/main amd64 logrotate amd64 3.21.0-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e52.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:4 http://archive.ubuntu.com/ubuntu noble/main amd64 netcat-openbsd amd64 1.226-1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e44.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:5 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 udev amd64 255.4-1ubuntu8.8 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,874 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 systemd-hwe-hwdb all 255.1.4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e3,200 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:7 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dmidecode amd64 3.5-3ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e73.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:8 http://archive.ubuntu.com/ubuntu noble/main amd64 gettext-base amd64 0.21-14ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e38.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:9 http://archive.ubuntu.com/ubuntu noble/main amd64 libip4tc2 amd64 1.8.10-3ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e23.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:10 http://archive.ubuntu.com/ubuntu noble/main amd64 libip6tc2 amd64 1.8.10-3ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e23.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:11 http://archive.ubuntu.com/ubuntu noble/main amd64 libnfnetlink0 amd64 1.0.2-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e14.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:12 http://archive.ubuntu.com/ubuntu noble/main amd64 libnetfilter-conntrack3 amd64 1.0.9-6build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e45.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:13 http://archive.ubuntu.com/ubuntu noble/main amd64 libnftnl11 amd64 1.2.6-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e66.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:14 http://archive.ubuntu.com/ubuntu noble/main amd64 iptables amd64 1.8.10-3ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e381\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:15 http://archive.ubuntu.com/ubuntu noble/main amd64 libnftables1 amd64 1.0.9-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e358\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:16 http://archive.ubuntu.com/ubuntu noble/main amd64 libparted2t64 amd64 3.6-4build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e152\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:17 http://archive.ubuntu.com/ubuntu noble/main amd64 nftables amd64 1.0.9-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e69.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:18 http://archive.ubuntu.com/ubuntu noble/main amd64 parted amd64 3.6-4build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e43.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:19 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 acl amd64 2.3.2-1build1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e39.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:20 http://archive.ubuntu.com/ubuntu noble/main amd64 alsa-topology-conf all 1.2.5.1-2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e15.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:21 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libasound2-data all 1.2.11-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e21.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:22 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libasound2t64 amd64 1.2.11-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e399\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:23 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 alsa-ucm-conf all 1.2.10-1ubuntu5.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e66.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:24 http://archive.ubuntu.com/ubuntu noble/main amd64 msr-tools amd64 1.3-5build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e9,610 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:25 http://archive.ubuntu.com/ubuntu noble/main amd64 cpu-checker amd64 0.7-1.3build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e6,148 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:26 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdevmapper-event1.02.1 amd64 2:1.02.185-3ubuntu3.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e12.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:27 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liblvm2cmd2.03 amd64 2.03.16-3ubuntu3.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e797\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:28 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dmeventd amd64 2:1.02.185-3ubuntu3.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e38.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:29 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dns-root-data all 2024071801~ubuntu0.24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e5,918 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:30 http://archive.ubuntu.com/ubuntu noble/main amd64 dnsmasq-base amd64 2.90-2build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e375\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:31 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-atk-1.0 amd64 2.52.0-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e23.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:32 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-gdkpixbuf-2.0 amd64 2.42.10+dfsg-3ubuntu3.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e9,486 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:33 http://archive.ubuntu.com/ubuntu noble/main amd64 libharfbuzz-gobject0 amd64 8.3.0-2build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e34.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:34 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-harfbuzz-0.0 amd64 8.3.0-2build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e44.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:35 http://archive.ubuntu.com/ubuntu noble/main amd64 libxft2 amd64 2.3.6-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e45.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:36 http://archive.ubuntu.com/ubuntu noble/main amd64 libpangoxft-1.0-0 amd64 1.52.1+ds-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e20.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:37 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-pango-1.0 amd64 1.52.1+ds-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e34.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:38 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-gtk-3.0 amd64 3.24.41-4ubuntu1.3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e245\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:39 http://archive.ubuntu.com/ubuntu noble/main amd64 libayatana-ido3-0.4-0 amd64 0.10.1-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e56.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:40 http://archive.ubuntu.com/ubuntu noble/main amd64 libayatana-indicator3-7 amd64 0.9.4-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e31.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:41 http://archive.ubuntu.com/ubuntu noble/main amd64 libdbusmenu-glib4 amd64 18.10.20180917~bzr492+repack1-3.1ubuntu5 \u003cspan class=\"o\"\u003e[\u003c/span\u003e43.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:42 http://archive.ubuntu.com/ubuntu noble/main amd64 libdbusmenu-gtk3-4 amd64 18.10.20180917~bzr492+repack1-3.1ubuntu5 \u003cspan class=\"o\"\u003e[\u003c/span\u003e27.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:43 http://archive.ubuntu.com/ubuntu noble/main amd64 libayatana-appindicator3-1 amd64 0.5.93-1build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e24.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:44 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-ayatanaappindicator3-0.1 amd64 0.5.93-1build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e5,838 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:45 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-gstreamer-1.0 amd64 1.24.2-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e88.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:46 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-gtk-vnc-2.0 amd64 1.3.1-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e12.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:47 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgtksourceview-4-common all 4.8.4-5build4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e590\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:48 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgtksourceview-4-0 amd64 4.8.4-5build4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e233\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:49 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-gtksource-4 amd64 4.8.4-5build4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e20.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:50 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-spiceclientglib-2.0 amd64 0.42-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e14.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:51 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-spiceclientgtk-3.0 amd64 0.42-2ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e5,610 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:52 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-vte-2.91 amd64 0.76.0-1ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e11.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:53 http://archive.ubuntu.com/ubuntu noble/main amd64 libaa1 amd64 1.4p5-51.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e49.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:54 http://archive.ubuntu.com/ubuntu noble/main amd64 libraw1394-11 amd64 2.1.2-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e26.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:55 http://archive.ubuntu.com/ubuntu noble/main amd64 libavc1394-0 amd64 0.5.4-5build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e15.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:56 http://archive.ubuntu.com/ubuntu noble/main amd64 libcaca0 amd64 0.99.beta20-4build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e208\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:57 http://archive.ubuntu.com/ubuntu noble/main amd64 libdv4t64 amd64 1.0.0-17.1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e63.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:58 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer-plugins-good1.0-0 amd64 1.24.2-1ubuntu1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e32.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:59 http://archive.ubuntu.com/ubuntu noble/main amd64 libgudev-1.0-0 amd64 1:238-5ubuntu1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e15.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:60 http://archive.ubuntu.com/ubuntu noble/main amd64 libiec61883-0 amd64 1.2.0-6build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e24.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:61 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libspeex1 amd64 1.2.1-2ubuntu2.24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e59.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:62 http://archive.ubuntu.com/ubuntu noble/main amd64 libshout3 amd64 2.4.6-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e50.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:63 http://archive.ubuntu.com/ubuntu noble/main amd64 libtag1v5-vanilla amd64 1.13.1-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e326\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:64 http://archive.ubuntu.com/ubuntu noble/main amd64 libtag1v5 amd64 1.13.1-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e11.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:65 http://archive.ubuntu.com/ubuntu noble/main amd64 libtwolame0 amd64 0.4.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e52.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:66 http://archive.ubuntu.com/ubuntu noble/main amd64 libv4lconvert0t64 amd64 1.26.1-4build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e87.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:67 http://archive.ubuntu.com/ubuntu noble/main amd64 libv4l-0t64 amd64 1.26.1-4build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e46.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:68 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvpx9 amd64 1.14.0-1ubuntu2.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,143 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:69 http://archive.ubuntu.com/ubuntu noble/main amd64 libwavpack1 amd64 5.6.0-1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e84.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:70 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-plugins-good amd64 1.24.2-1ubuntu1.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e2,238 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:71 http://archive.ubuntu.com/ubuntu noble/main amd64 libxv1 amd64 2:1.0.11-1.1build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e10.7 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:72 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-x amd64 1.24.2-1ubuntu0.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e85.0 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:73 http://archive.ubuntu.com/ubuntu noble/main amd64 ipxe-qemu all 1.21.1+git-20220113.fbbdc3926-0ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,565 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:74 http://archive.ubuntu.com/ubuntu noble/main amd64 ipxe-qemu-256k-compat-efi-roms all 1.0.0+git-20150424.a25a16d-0ubuntu5 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e548\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:75 http://archive.ubuntu.com/ubuntu noble/main amd64 libbrlapi0.8 amd64 6.6-4ubuntu5 \u003cspan class=\"o\"\u003e[\u003c/span\u003e31.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:76 http://archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-0 amd64 0.2.2-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e16.5 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:77 http://archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-plugin-1-gtk amd64 0.2.2-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e22.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:78 http://archive.ubuntu.com/ubuntu noble/main amd64 libsamplerate0 amd64 0.2.2-4build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,344 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:79 http://archive.ubuntu.com/ubuntu noble/main amd64 libjack-jackd2-0 amd64 1.9.21~dfsg-3ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e289\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:80 http://archive.ubuntu.com/ubuntu noble/main amd64 libwebrtc-audio-processing1 amd64 0.3.1-0ubuntu6 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e290\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:81 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libspa-0.2-modules amd64 1.0.5-1ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e626\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:82 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpipewire-0.3-0t64 amd64 1.0.5-1ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e252\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:83 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpipewire-0.3-common all 1.0.5-1ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e18.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:84 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpolkit-agent-1-0 amd64 124-2ubuntu1.24.04.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e17.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:85 http://archive.ubuntu.com/ubuntu noble/main amd64 libxss1 amd64 1:1.2.3-1build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e7,204 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:86 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsdl2-2.0-0 amd64 2.30.0+dfsg-1ubuntu3.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e686\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:87 http://archive.ubuntu.com/ubuntu noble/main amd64 libslirp0 amd64 4.7.0-1ubuntu3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e63.8 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:88 http://archive.ubuntu.com/ubuntu noble/main amd64 libspice-server1 amd64 0.15.1-1build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e349\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:89 http://archive.ubuntu.com/ubuntu noble/main amd64 libtpms0 amd64 0.9.3-0ubuntu4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e373\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:90 http://archive.ubuntu.com/ubuntu noble/main amd64 libvirglrenderer1 amd64 1.0.0-1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e226\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:91 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-driver-qemu amd64 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e740\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:92 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon amd64 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e431\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:93 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-config-network all 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e3,120 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:94 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-config-nwfilter all 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e6,042 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:95 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 systemd-container amd64 255.4-1ubuntu8.8 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e417\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:96 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-system-systemd all 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,376 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:97 http://archive.ubuntu.com/ubuntu noble/main amd64 xml-core all 0.19 \u003cspan class=\"o\"\u003e[\u003c/span\u003e20.3 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:98 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 polkitd amd64 124-2ubuntu1.24.04.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e95.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:99 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-system amd64 10.0.0-2ubuntu8.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e49.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:100 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libxml2-utils amd64 2.9.14+dfsg-1.3ubuntu3.3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e39.4 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:101 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 lvm2 amd64 2.03.16-3ubuntu3.2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,186 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:102 http://archive.ubuntu.com/ubuntu noble/main amd64 mdevctl amd64 1.3.0-1ubuntu2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e936\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:103 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-cairo amd64 1.25.1-2build2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e119\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:104 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-gi-cairo amd64 3.48.2-1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e8,132 B\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:105 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-common amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,253 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:106 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-data all 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e1,793 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:107 http://archive.ubuntu.com/ubuntu noble/main amd64 libfdt1 amd64 1.7.0-2build1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e20.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:108 http://archive.ubuntu.com/ubuntu noble/main amd64 seabios all 1.16.3-2 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e175\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:109 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-x86 amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e11.2 MB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:110 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-modules-opengl amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e184\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:111 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-gui amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e314\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:112 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-modules-spice amd64 1:8.2.2+ds-0ubuntu1.7 \u003cspan class=\"o\"\u003e[\u003c/span\u003e70.2 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:113 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 swtpm amd64 0.7.3-0ubuntu5.24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e53.1 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:114 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 swtpm-tools amd64 0.7.3-0ubuntu5.24.04.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e92.9 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:115 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 thin-provisioning-tools amd64 0.9.0-2ubuntu5.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e436\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:116 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-libvirt-glib-1.0 amd64 5.0.0-2build3 \u003cspan class=\"o\"\u003e[\u003c/span\u003e32.6 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:117 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 virt-manager all 1:4.1.0-3ubuntu0.1 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e263\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:118 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libnss-mymachines amd64 255.4-1ubuntu8.8 \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"m\"\u003e153\u003c/span\u003e kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGet:119 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 ovmf all 2024.02-2ubuntu0.4 \u003cspan class=\"o\"\u003e[\u003c/span\u003e4,571 kB\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFetched 43.2 MB in 5s \u003cspan class=\"o\"\u003e(\u003c/span\u003e9,539 kB/s\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExtracting templates from packages: 100%\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreconfiguring packages ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package sgml-base.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003eReading database ... \u003cspan class=\"m\"\u003e30439\u003c/span\u003e files and directories currently installed.\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../000-sgml-base_1.31_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking sgml-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.31\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libslang2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../001-libslang2_2.3.3-3build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libslang2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.3.3-3build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package logrotate.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../002-logrotate_3.21.0-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking logrotate \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.21.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package netcat-openbsd.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../003-netcat-openbsd_1.226-1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking netcat-openbsd \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.226-1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package udev.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../004-udev_255.4-1ubuntu8.8_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking udev \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.4-1ubuntu8.8\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package systemd-hwe-hwdb.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../005-systemd-hwe-hwdb_255.1.4_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking systemd-hwe-hwdb \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.1.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package dmidecode.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../006-dmidecode_3.5-3ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking dmidecode \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.5-3ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gettext-base.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../007-gettext-base_0.21-14ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gettext-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.21-14ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libip4tc2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../008-libip4tc2_1.8.10-3ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libip4tc2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.10-3ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libip6tc2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../009-libip6tc2_1.8.10-3ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libip6tc2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.10-3ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnfnetlink0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../010-libnfnetlink0_1.0.2-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnfnetlink0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.2-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnetfilter-conntrack3:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../011-libnetfilter-conntrack3_1.0.9-6build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnetfilter-conntrack3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.9-6build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnftnl11:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../012-libnftnl11_1.2.6-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnftnl11:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.6-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package iptables.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../013-iptables_1.8.10-3ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking iptables \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.10-3ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnftables1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../014-libnftables1_1.0.9-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnftables1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.9-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libparted2t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../015-libparted2t64_3.6-4build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAdding \u003cspan class=\"s1\"\u003e\u0026#39;diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged by\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003elibparted2t64\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAdding \u003cspan class=\"s1\"\u003e\u0026#39;diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-me\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003erged by libparted2t64\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libparted2t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.6-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package nftables.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../016-nftables_1.0.9-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking nftables \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.9-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package parted.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../017-parted_3.6-4build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking parted \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.6-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package acl.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../018-acl_2.3.2-1build1.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking acl \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.3.2-1build1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package alsa-topology-conf.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../019-alsa-topology-conf_1.2.5.1-2_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking alsa-topology-conf \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.5.1-2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libasound2-data.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../020-libasound2-data_1.2.11-1ubuntu0.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libasound2-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.11-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libasound2t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../021-libasound2t64_1.2.11-1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libasound2t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.11-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package alsa-ucm-conf.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../022-alsa-ucm-conf_1.2.10-1ubuntu5.7_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking alsa-ucm-conf \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.10-1ubuntu5.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package msr-tools.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../023-msr-tools_1.3-5build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking msr-tools \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3-5build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package cpu-checker.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../024-cpu-checker_0.7-1.3build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking cpu-checker \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.7-1.3build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdevmapper-event1.02.1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../025-libdevmapper-event1.02.1_2%3a1.02.185-3ubuntu3.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdevmapper-event1.02.1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.02.185-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package liblvm2cmd2.03:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../026-liblvm2cmd2.03_2.03.16-3ubuntu3.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking liblvm2cmd2.03:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.03.16-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package dmeventd.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../027-dmeventd_2%3a1.02.185-3ubuntu3.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking dmeventd \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.02.185-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package dns-root-data.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../028-dns-root-data_2024071801~ubuntu0.24.04.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking dns-root-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e2024071801~ubuntu0.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package dnsmasq-base.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../029-dnsmasq-base_2.90-2build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking dnsmasq-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.90-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-atk-1.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../030-gir1.2-atk-1.0_2.52.0-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-atk-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.52.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-gdkpixbuf-2.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../031-gir1.2-gdkpixbuf-2.0_2.42.10+dfsg-3ubuntu3.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-gdkpixbuf-2.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.42.10+dfsg-3ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libharfbuzz-gobject0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../032-libharfbuzz-gobject0_8.3.0-2build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libharfbuzz-gobject0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e8.3.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-harfbuzz-0.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../033-gir1.2-harfbuzz-0.0_8.3.0-2build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-harfbuzz-0.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e8.3.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libxft2:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../034-libxft2_2.3.6-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libxft2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.3.6-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpangoxft-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../035-libpangoxft-1.0-0_1.52.1+ds-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpangoxft-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.52.1+ds-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-pango-1.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../036-gir1.2-pango-1.0_1.52.1+ds-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-pango-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.52.1+ds-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-gtk-3.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../037-gir1.2-gtk-3.0_3.24.41-4ubuntu1.3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-gtk-3.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.24.41-4ubuntu1.3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libayatana-ido3-0.4-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../038-libayatana-ido3-0.4-0_0.10.1-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libayatana-ido3-0.4-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.10.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libayatana-indicator3-7:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../039-libayatana-indicator3-7_0.9.4-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libayatana-indicator3-7:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.9.4-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdbusmenu-glib4:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../040-libdbusmenu-glib4_18.10.20180917~bzr492+repack1-3.1ubuntu5_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdbusmenu-glib4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e18.10.20180917~bzr492+repack1-3.1ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdbusmenu-gtk3-4:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../041-libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-3.1ubuntu5_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdbusmenu-gtk3-4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e18.10.20180917~bzr492+repack1-3.1ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libayatana-appindicator3-1.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../042-libayatana-appindicator3-1_0.5.93-1build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libayatana-appindicator3-1 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.93-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-ayatanaappindicator3-0.1.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../043-gir1.2-ayatanaappindicator3-0.1_0.5.93-1build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-ayatanaappindicator3-0.1 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.93-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-gstreamer-1.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../044-gir1.2-gstreamer-1.0_1.24.2-1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-gstreamer-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-gtk-vnc-2.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../045-gir1.2-gtk-vnc-2.0_1.3.1-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-gtk-vnc-2.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgtksourceview-4-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../046-libgtksourceview-4-common_4.8.4-5build4_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgtksourceview-4-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.8.4-5build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgtksourceview-4-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../047-libgtksourceview-4-0_4.8.4-5build4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgtksourceview-4-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.8.4-5build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-gtksource-4:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../048-gir1.2-gtksource-4_4.8.4-5build4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-gtksource-4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.8.4-5build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-spiceclientglib-2.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../049-gir1.2-spiceclientglib-2.0_0.42-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-spiceclientglib-2.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-spiceclientgtk-3.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../050-gir1.2-spiceclientgtk-3.0_0.42-2ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-spiceclientgtk-3.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-vte-2.91:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../051-gir1.2-vte-2.91_0.76.0-1ubuntu0.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-vte-2.91:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.76.0-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libaa1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../052-libaa1_1.4p5-51.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libaa1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.4p5-51.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libraw1394-11:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../053-libraw1394-11_2.1.2-2build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libraw1394-11:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.1.2-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libavc1394-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../054-libavc1394-0_0.5.4-5build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libavc1394-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.4-5build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libcaca0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../055-libcaca0_0.99.beta20-4build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libcaca0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.99.beta20-4build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdv4t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../056-libdv4t64_1.0.0-17.1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdv4t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.0-17.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgstreamer-plugins-good1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../057-libgstreamer-plugins-good1.0-0_1.24.2-1ubuntu1.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgstreamer-plugins-good1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libgudev-1.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../058-libgudev-1.0-0_1%3a238-5ubuntu1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libgudev-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:238-5ubuntu1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libiec61883-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../059-libiec61883-0_1.2.0-6build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libiec61883-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.0-6build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libspeex1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../060-libspeex1_1.2.1-2ubuntu2.24.04.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libspeex1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.1-2ubuntu2.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libshout3:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../061-libshout3_2.4.6-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libshout3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.4.6-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libtag1v5-vanilla:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../062-libtag1v5-vanilla_1.13.1-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libtag1v5-vanilla:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libtag1v5:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../063-libtag1v5_1.13.1-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libtag1v5:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libtwolame0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../064-libtwolame0_0.4.0-2build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libtwolame0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.4.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libv4lconvert0t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../065-libv4lconvert0t64_1.26.1-4build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libv4lconvert0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.26.1-4build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libv4l-0t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../066-libv4l-0t64_1.26.1-4build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libv4l-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.26.1-4build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvpx9:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../067-libvpx9_1.14.0-1ubuntu2.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvpx9:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.14.0-1ubuntu2.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libwavpack1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../068-libwavpack1_5.6.0-1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libwavpack1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.6.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gstreamer1.0-plugins-good:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../069-gstreamer1.0-plugins-good_1.24.2-1ubuntu1.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gstreamer1.0-plugins-good:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libxv1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../070-libxv1_2%3a1.0.11-1.1build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libxv1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.0.11-1.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gstreamer1.0-x:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../071-gstreamer1.0-x_1.24.2-1ubuntu0.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gstreamer1.0-x:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package ipxe-qemu.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../072-ipxe-qemu_1.21.1+git-20220113.fbbdc3926-0ubuntu2_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking ipxe-qemu \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.21.1+git-20220113.fbbdc3926-0ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package ipxe-qemu-256k-compat-efi-roms.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../073-ipxe-qemu-256k-compat-efi-roms_1.0.0+git-20150424.a25a16d-0ubuntu5_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking ipxe-qemu-256k-compat-efi-roms \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.0+git-20150424.a25a16d-0ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libbrlapi0.8:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../074-libbrlapi0.8_6.6-4ubuntu5_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libbrlapi0.8:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e6.6-4ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdecor-0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../075-libdecor-0-0_0.2.2-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdecor-0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.2.2-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libdecor-0-plugin-1-gtk:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../076-libdecor-0-plugin-1-gtk_0.2.2-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libdecor-0-plugin-1-gtk:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.2.2-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libsamplerate0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../077-libsamplerate0_0.2.2-4build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libsamplerate0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.2.2-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libjack-jackd2-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../078-libjack-jackd2-0_1.9.21~dfsg-3ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libjack-jackd2-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.9.21~dfsg-3ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libwebrtc-audio-processing1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../079-libwebrtc-audio-processing1_0.3.1-0ubuntu6_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libwebrtc-audio-processing1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.3.1-0ubuntu6\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libspa-0.2-modules:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../080-libspa-0.2-modules_1.0.5-1ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libspa-0.2-modules:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.5-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpipewire-0.3-0t64:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../081-libpipewire-0.3-0t64_1.0.5-1ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpipewire-0.3-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.5-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpipewire-0.3-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../082-libpipewire-0.3-common_1.0.5-1ubuntu3_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpipewire-0.3-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.5-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libpolkit-agent-1-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../083-libpolkit-agent-1-0_124-2ubuntu1.24.04.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libpolkit-agent-1-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e124-2ubuntu1.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libxss1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../084-libxss1_1%3a1.2.3-1build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libxss1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:1.2.3-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libsdl2-2.0-0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../085-libsdl2-2.0-0_2.30.0+dfsg-1ubuntu3.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libsdl2-2.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.30.0+dfsg-1ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libslirp0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../086-libslirp0_4.7.0-1ubuntu3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libslirp0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.7.0-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libspice-server1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../087-libspice-server1_0.15.1-1build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libspice-server1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.15.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libtpms0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../088-libtpms0_0.9.3-0ubuntu4_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libtpms0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.9.3-0ubuntu4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirglrenderer1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../089-libvirglrenderer1_1.0.0-1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirglrenderer1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.0-1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-daemon-driver-qemu.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../090-libvirt-daemon-driver-qemu_10.0.0-2ubuntu8.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-daemon-driver-qemu \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-daemon.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../091-libvirt-daemon_10.0.0-2ubuntu8.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-daemon \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-daemon-config-network.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../092-libvirt-daemon-config-network_10.0.0-2ubuntu8.7_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-daemon-config-network \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-daemon-config-nwfilter.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../093-libvirt-daemon-config-nwfilter_10.0.0-2ubuntu8.7_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-daemon-config-nwfilter \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package systemd-container.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../094-systemd-container_255.4-1ubuntu8.8_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking systemd-container \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.4-1ubuntu8.8\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-daemon-system-systemd.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../095-libvirt-daemon-system-systemd_10.0.0-2ubuntu8.7_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-daemon-system-systemd \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package xml-core.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../096-xml-core_0.19_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking xml-core \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.19\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package polkitd.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../097-polkitd_124-2ubuntu1.24.04.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking polkitd \u003cspan class=\"o\"\u003e(\u003c/span\u003e124-2ubuntu1.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libvirt-daemon-system.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../098-libvirt-daemon-system_10.0.0-2ubuntu8.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libvirt-daemon-system \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libxml2-utils.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../099-libxml2-utils_2.9.14+dfsg-1.3ubuntu3.3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libxml2-utils \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.9.14+dfsg-1.3ubuntu3.3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package lvm2.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../100-lvm2_2.03.16-3ubuntu3.2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking lvm2 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.03.16-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package mdevctl.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../101-mdevctl_1.3.0-1ubuntu2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking mdevctl \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.0-1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-cairo.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../102-python3-cairo_1.25.1-2build2_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-cairo \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.25.1-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package python3-gi-cairo.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../103-python3-gi-cairo_3.48.2-1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking python3-gi-cairo \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.48.2-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-system-common.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../104-qemu-system-common_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-system-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-system-data.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../105-qemu-system-data_1%3a8.2.2+ds-0ubuntu1.7_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-system-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libfdt1:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../106-libfdt1_1.7.0-2build1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libfdt1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.7.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package seabios.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../107-seabios_1.16.3-2_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking seabios \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.16.3-2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-system-x86.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../108-qemu-system-x86_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-system-x86 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-system-modules-opengl.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../109-qemu-system-modules-opengl_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-system-modules-opengl \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-system-gui.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../110-qemu-system-gui_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-system-gui \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package qemu-system-modules-spice.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../111-qemu-system-modules-spice_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking qemu-system-modules-spice \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package swtpm.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../112-swtpm_0.7.3-0ubuntu5.24.04.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking swtpm \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.7.3-0ubuntu5.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package swtpm-tools.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../113-swtpm-tools_0.7.3-0ubuntu5.24.04.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking swtpm-tools \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.7.3-0ubuntu5.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package thin-provisioning-tools.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../114-thin-provisioning-tools_0.9.0-2ubuntu5.1_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking thin-provisioning-tools \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.9.0-2ubuntu5.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package gir1.2-libvirt-glib-1.0:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../115-gir1.2-libvirt-glib-1.0_5.0.0-2build3_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking gir1.2-libvirt-glib-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package virt-manager.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../116-virt-manager_1%3a4.1.0-3ubuntu0.1_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking virt-manager \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:4.1.0-3ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package libnss-mymachines:amd64.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../117-libnss-mymachines_255.4-1ubuntu8.8_amd64.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking libnss-mymachines:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.4-1ubuntu8.8\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSelecting previously unselected package ovmf.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePreparing to unpack .../118-ovmf_2024.02-2ubuntu0.4_all.deb ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUnpacking ovmf \u003cspan class=\"o\"\u003e(\u003c/span\u003e2024.02-2ubuntu0.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libip4tc2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.10-3ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpipewire-0.3-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.5-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up logrotate \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.21.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/timers.target.wants/logrotate.timer → /usr/lib/systemd/system/logrotate.timer.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-daemon-config-network \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-gstreamer-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libraw1394-11:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.1.2-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libxft2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.3.6-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libtag1v5-vanilla:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-cairo \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.25.1-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libspeex1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.1-2ubuntu2.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdevmapper-event1.02.1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.02.185-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libv4lconvert0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.26.1-4build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpangoxft-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.52.1+ds-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libtwolame0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.4.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-gdkpixbuf-2.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.42.10+dfsg-3ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-spiceclientglib-2.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-atk-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.52.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libip6tc2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.10-3ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdbusmenu-glib4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e18.10.20180917~bzr492+repack1-3.1ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libspice-server1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.15.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up netcat-openbsd \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.226-1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /bin/nc.openbsd to provide /bin/nc \u003cspan class=\"o\"\u003e(\u003c/span\u003enc\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-libvirt-glib-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.0.0-2build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up msr-tools \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3-5build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libwebrtc-audio-processing1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.3.1-0ubuntu6\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gettext-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.21-14ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnftnl11:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.6-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libharfbuzz-gobject0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e8.3.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libfdt1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.7.0-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libayatana-ido3-0.4-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.10.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-harfbuzz-0.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e8.3.0-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up acl \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.3.2-1build1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up ovmf \u003cspan class=\"o\"\u003e(\u003c/span\u003e2024.02-2ubuntu0.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up dns-root-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e2024071801~ubuntu0.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libasound2-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.11-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-pango-1.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.52.1+ds-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgstreamer-plugins-good1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libasound2t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.11-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libslang2:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.3.3-3build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirglrenderer1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.0-1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libspa-0.2-modules:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.5-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libxv1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.0.11-1.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libshout3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.4.6-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up thin-provisioning-tools \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.9.0-2ubuntu5.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up udev \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.4-1ubuntu8.8\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating group \u003cspan class=\"s1\"\u003e\u0026#39;input\u0026#39;\u003c/span\u003e with GID 995.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating group \u003cspan class=\"s1\"\u003e\u0026#39;sgx\u0026#39;\u003c/span\u003e with GID 994.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating group \u003cspan class=\"s1\"\u003e\u0026#39;kvm\u0026#39;\u003c/span\u003e with GID 993.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating group \u003cspan class=\"s1\"\u003e\u0026#39;render\u0026#39;\u003c/span\u003e with GID 992.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efchownat\u003cspan class=\"o\"\u003e()\u003c/span\u003e of /dev/snd/seq failed: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efchownat\u003cspan class=\"o\"\u003e()\u003c/span\u003e of /dev/snd/timer failed: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efchownat\u003cspan class=\"o\"\u003e()\u003c/span\u003e of /dev/loop-control failed: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efchmod\u003cspan class=\"o\"\u003e()\u003c/span\u003e of /dev/kvm failed: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efchmod\u003cspan class=\"o\"\u003e()\u003c/span\u003e of /dev/vhost-net failed: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003efchmod\u003cspan class=\"o\"\u003e()\u003c/span\u003e of /dev/vhost-vsock failed: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-daemon-driver-qemu \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdv4t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.0-17.1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-system-data \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up seabios \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.16.3-2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up systemd-hwe-hwdb \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.1.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libv4l-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.26.1-4build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up systemd-container \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.4-1ubuntu8.8\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/multi-user.target.wants/machines.target → /usr/lib/systemd/system/machines.targ\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eet.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvpx9:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.14.0-1ubuntu2.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libslirp0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.7.0-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up alsa-topology-conf \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.5.1-2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libtag1v5:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.13.1-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up cpu-checker \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.7-1.3build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libwavpack1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e5.6.0-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnfnetlink0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.2-2build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up ipxe-qemu \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.21.1+git-20220113.fbbdc3926-0ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdecor-0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.2.2-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpolkit-agent-1-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e124-2ubuntu1.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up ipxe-qemu-256k-compat-efi-roms \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.0+git-20150424.a25a16d-0ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up sgml-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.31\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libbrlapi0.8:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e6.6-4ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libxss1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:1.2.3-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libtpms0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.9.3-0ubuntu4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up dmidecode \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.5-3ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libxml2-utils \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.9.14+dfsg-1.3ubuntu3.3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-daemon-config-nwfilter \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libsamplerate0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.2.2-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libayatana-indicator3-7:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.9.4-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up python3-gi-cairo \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.48.2-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgtksourceview-4-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.8.4-5build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libpipewire-0.3-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.5-1ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdecor-0-plugin-1-gtk:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.2.2-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgudev-1.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:238-5ubuntu1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libaa1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.4p5-51.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libiec61883-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.0-6build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up mdevctl \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.0-1ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libavc1394-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.4-5build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libdbusmenu-gtk3-4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e18.10.20180917~bzr492+repack1-3.1ubuntu5\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnftables1:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.9-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gstreamer1.0-x:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu0.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up nftables \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.9-1build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-system-common \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/multi-user.target.wants/qemu-kvm.service → /usr/lib/systemd/system/qemu-kvm.ser\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003evice.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libcaca0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.99.beta20-4build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up alsa-ucm-conf \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.2.10-1ubuntu5.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gstreamer1.0-plugins-good:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.24.2-1ubuntu1.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-system-x86 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-gtk-3.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.24.41-4ubuntu1.3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libparted2t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.6-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRemoving \u003cspan class=\"s1\"\u003e\u0026#39;diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged b\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003ey libparted2t64\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRemoving \u003cspan class=\"s1\"\u003e\u0026#39;diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003emerged by libparted2t64\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libgtksourceview-4-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.8.4-5build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnss-mymachines:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e255.4-1ubuntu8.8\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libayatana-appindicator3-1 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.93-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up swtpm \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.7.3-0ubuntu5.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-gtk-vnc-2.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.3.1-1build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-daemon-system-systemd \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-spiceclientgtk-3.0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.42-2ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libjack-jackd2-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.9.21~dfsg-3ubuntu3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libnetfilter-conntrack3:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.0.9-6build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up xml-core \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.19\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-vte-2.91:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.76.0-1ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-daemon \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libsdl2-2.0-0:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.30.0+dfsg-1ubuntu3.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-ayatanaappindicator3-0.1 \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.5.93-1build3\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up gir1.2-gtksource-4:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e4.8.4-5build4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-system-modules-opengl \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up iptables \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.8.10-3ubuntu2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables \u003cspan class=\"o\"\u003e(\u003c/span\u003eiptables\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /usr/sbin/ip6tables-legacy to provide /usr/sbin/ip6tables \u003cspan class=\"o\"\u003e(\u003c/span\u003eip6tables\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /usr/sbin/iptables-nft to provide /usr/sbin/iptables \u003cspan class=\"o\"\u003e(\u003c/span\u003eiptables\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /usr/sbin/ip6tables-nft to provide /usr/sbin/ip6tables \u003cspan class=\"o\"\u003e(\u003c/span\u003eip6tables\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /usr/sbin/arptables-nft to provide /usr/sbin/arptables \u003cspan class=\"o\"\u003e(\u003c/span\u003earptables\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eupdate-alternatives: using /usr/sbin/ebtables-nft to provide /usr/sbin/ebtables \u003cspan class=\"o\"\u003e(\u003c/span\u003eebtables\u003cspan class=\"o\"\u003e)\u003c/span\u003e in auto mode\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-system-gui \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up parted \u003cspan class=\"o\"\u003e(\u003c/span\u003e3.6-4build1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up dnsmasq-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.90-2build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up swtpm-tools \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.7.3-0ubuntu5.24.04.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einfo: Selecting GID from range \u003cspan class=\"m\"\u003e100\u003c/span\u003e to \u003cspan class=\"m\"\u003e999\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einfo: Adding group \u003cspan class=\"sb\"\u003e`\u003c/span\u003eswtpm\u003cspan class=\"s1\"\u003e\u0026#39; (GID 107) ...\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003einfo: The home dir /var/lib/swtpm you specified can\u0026#39;\u003c/span\u003et be accessed: No such file or directory\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einfo: Selecting UID from range \u003cspan class=\"m\"\u003e100\u003c/span\u003e to \u003cspan class=\"m\"\u003e999\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einfo: Adding system user \u003cspan class=\"sb\"\u003e`\u003c/span\u003eswtpm\u003cspan class=\"s1\"\u003e\u0026#39; (UID 103) ...\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003einfo: Adding new user `swtpm\u0026#39;\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003eUID 103\u003cspan class=\"o\"\u003e)\u003c/span\u003e with group \u003cspan class=\"sb\"\u003e`\u003c/span\u003eswtpm\u003cspan class=\"s1\"\u003e\u0026#39; ...\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003einfo: Not creating home directory `/var/lib/swtpm\u0026#39;\u003c/span\u003e.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up virt-manager \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:4.1.0-3ubuntu0.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up qemu-system-modules-spice \u003cspan class=\"o\"\u003e(\u003c/span\u003e1:8.2.2+ds-0ubuntu1.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up liblvm2cmd2.03:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.03.16-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up dmeventd \u003cspan class=\"o\"\u003e(\u003c/span\u003e2:1.02.185-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/sockets.target.wants/dm-event.socket → /usr/lib/systemd/system/dm-event.socket.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up lvm2 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.03.16-3ubuntu3.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/sysinit.target.wants/blk-availability.service → /usr/lib/systemd/system/blk-ava\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eilability.service.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service → /usr/lib/systemd/system/lvm2-monito\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003er.service.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreated symlink /etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket → /usr/lib/systemd/system/lvm2-lvmpol\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eld.socket.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e libglib2.0-0t64:amd64 \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.80.0-6ubuntu3.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e dbus \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.14.10-4ubuntu4.1\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e hicolor-icon-theme \u003cspan class=\"o\"\u003e(\u003c/span\u003e0.17-2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e libc-bin \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.39-0ubuntu8.4\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e man-db \u003cspan class=\"o\"\u003e(\u003c/span\u003e2.12.0-4build2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eProcessing triggers \u003cspan class=\"k\"\u003efor\u003c/span\u003e sgml-base \u003cspan class=\"o\"\u003e(\u003c/span\u003e1.31\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up polkitd \u003cspan class=\"o\"\u003e(\u003c/span\u003e124-2ubuntu1.24.04.2\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating group \u003cspan class=\"s1\"\u003e\u0026#39;polkitd\u0026#39;\u003c/span\u003e with GID 991.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCreating user \u003cspan class=\"s1\"\u003e\u0026#39;polkitd\u0026#39;\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003eUser \u003cspan class=\"k\"\u003efor\u003c/span\u003e polkitd\u003cspan class=\"o\"\u003e)\u003c/span\u003e with UID \u003cspan class=\"m\"\u003e991\u003c/span\u003e and GID 991.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einvoke-rc.d: could not determine current runlevel\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einvoke-rc.d: policy-rc.d denied execution of reload.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003estart-stop-daemon: unable to stat /usr/libexec/polkitd \u003cspan class=\"o\"\u003e(\u003c/span\u003eNo such file or directory\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSetting up libvirt-daemon-system \u003cspan class=\"o\"\u003e(\u003c/span\u003e10.0.0-2ubuntu8.7\u003cspan class=\"o\"\u003e)\u003c/span\u003e ...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euseradd warning: libvirt-qemu\u003cspan class=\"s1\"\u003e\u0026#39;s uid 64055 is greater than SYS_UID_MAX 999\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003echown: changing ownership of \u0026#39;\u003c/span\u003e/var/lib/libvirt/qemu/\u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003e: Operation not permitted\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edpkg: error processing package libvirt-daemon-system \u003cspan class=\"o\"\u003e(\u003c/span\u003e--configure\u003cspan class=\"o\"\u003e)\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e installed libvirt-daemon-system package post-installation script subprocess returned error \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e status \u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eErrors were encountered \u003cspan class=\"k\"\u003ewhile\u003c/span\u003e processing:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e libvirt-daemon-system\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eE: Sub-process /usr/bin/dpkg returned an error code \u003cspan class=\"o\"\u003e(\u003c/span\u003e1\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e📦\u003cspan class=\"o\"\u003e[\u003c/span\u003ewaylon@ubuntu ~\u003cspan class=\"o\"\u003e]\u003c/span\u003e$ virt-manager\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI got virtual machine manager running on two Bazzite machines today.  It was a\nbit tricky, more than I thought actually.  I ran into all sorts of\nvirtualisation not setup issues when I tried the flatpak.  Then I found that\nBazzite comes with a `ujust setup-virtualization` command that does all the\nwork for me.  I tried that and again virtual machine manager was here, but not\nworking, this time it feels like flatpak issues.\n\nIn a Hail Mary attempt I got it working by using an ubuntu distrobox container\nto run the UI.  And it worked!\n\n## from the host\n\nFrom the host we create the container to use from distrobox.  This is an ubuntu\nmachine, it can be any os of your choosing, preferably one that you are\nfamiliar with and contains virt-manager in its package repos.\n\n``` bash\ndistrobox create -i ubuntu\ndistrobox enter ubuntu\n```\n\n## from inside the distrobox container\n\nNow that we are in the distrobox we are no longer in an immutable distro and we\ncan easily install anything we want.  I actually like this process.  I might\nhave shit like this that I use for a month or a few months, on a normal distro,\nthis is fully installed on the os, raises the potential of package conflicts\nand lengthens the update time.\n\n``` bash\nsudo apt update\nsudo apt upgrade\nsudo apt install virtinst virt-manager\nvirt-manager\n```\n\n## Along the way\n\nI tried adding myself to the libvirt group, and expicitly setting the socket\npath. After setting up another machine I realized these steps were unnecessary.\n\n``` bash\nsudo usermod -aG libvirt $USER\nexport LIBVIRT_DEFAULT_URI=\"qemu+unix:///system\"\nls -l /run/libvirt/libvirt-sock\nvirt-install --version\n```\n\n!!! Note\n    After fully reading through `ujust setup-virtualization` I realized that it\n    adds me to the libvirt group, so that's why it is not needed.\n\n## An even Better Guide\n\nI later found [[ thoughts-723 ]] there is documentation for setting up virtual\nmachine manager in distrobox in the distrobox docs.  It even calls out running\non an immutable distro like bazzite like it knew I was coming.\n\n## full log\n\n``` bash\nwaylon@razorcrest:~$ distrobox create -i ubuntu\nImage ubuntu not found.\nDo you want to pull the image now? [Y/n]: y\nResolved \"ubuntu\" as an alias (/etc/containers/registries.conf.d/000-shortnames.conf)\nTrying to pull docker.io/library/ubuntu:latest...\nGetting image source signatures\nCopying blob d9d352c11bbd done   |\nCopying config bf16bdcff9 done   |\nWriting manifest to image destination\nbf16bdcff9c96b76a6d417bd8f0a3abe0e55c0ed9bdb3549e906834e2592fd5f\nCreating 'ubuntu' using image ubuntu  [ OK ]\nDistrobox 'ubuntu' successfully created.\nTo enter, run:\n\ndistrobox enter ubuntu\n\nwaylon@razorcrest:~$ distrobox enter ubuntu\nStarting container...                     [ OK ]\nInstalling basic packages...              [ OK ]\nSetting up devpts mounts...               [ OK ]\nSetting up read-only mounts...            [ OK ]\nSetting up read-write mounts...           [ OK ]\nSetting up host's sockets integration...  [ OK ]\nIntegrating host's themes, icons, fonts...  [ OK ]\nSetting up distrobox profile...           [ OK ]\nSetting up sudo...                        [ OK ]\nSetting up user groups...                 [ OK ]\nSetting up user's group list...           [ OK ]\nSetting up existing user...               [ OK ]\nEnsuring user's access...                 [ OK ]\n\nContainer Setup Complete!\n📦[waylon@ubuntu ~]$ sudo apt update\nsudo apt install virtinst\nHit:1 http://security.ubuntu.com/ubuntu noble-security InRelease\nHit:2 http://archive.ubuntu.com/ubuntu noble InRelease\nHit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease\nHit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\n4 packages can be upgraded. Run 'apt list --upgradable' to see them.\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following additional packages will be installed:\n  gir1.2-freedesktop gir1.2-libosinfo-1.0 glib-networking glib-networking-common glib-networking-services\n  gstreamer1.0-plugins-base i965-va-driver intel-media-va-driver iso-codes libaio1t64 libasyncns0\n  libboost-iostreams1.83.0 libboost-thread1.83.0 libburn4t64 libcacard0 libcdparanoia0 libcurl3t64-gnutls\n  libdaxctl1 libduktape207 libdw1t64 libflac12t64 libfuse3-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0\n  libgtk-vnc-2.0-0 libgvnc-1.0-0 libigdgmm12 libiscsi7 libisoburn1t64 libisofs6t64 libjson-glib-1.0-0\n  libjson-glib-1.0-common libmp3lame0 libmpg123-0t64 libndctl6 libnfs14 libnspr4 libnss3 libnuma1 libogg0\n  libopus0 liborc-0.4-0t64 libosinfo-1.0-0 libosinfo-l10n libpcsclite1 libphodav-3.0-0 libphodav-3.0-common\n  libpmem1 libpmemobj1 libpolkit-gobject-1-0 libproxy1v5 libpulse0 librados2 librbd1 librdmacm1t64 libsndfile1\n  libsoup-3.0-0 libsoup-3.0-common libspice-client-glib-2.0-8 libspice-client-gtk-3.0-5 libtheora0 libunwind8\n  liburing2 libusb-1.0-0 libusbredirhost1t64 libusbredirparser1t64 libva-x11-2 libva2 libvirt-clients\n  libvirt-glib-1.0-0 libvirt-glib-1.0-data libvirt-l10n libvirt0 libvisual-0.4-0 libvorbis0a libvorbisenc2\n  libvte-2.91-0 libxslt1.1 libyajl2 mesa-va-drivers osinfo-db pci.ids python3-certifi python3-chardet\n  python3-idna python3-libvirt python3-libxml2 python3-pkg-resources python3-requests python3-urllib3\n  qemu-block-extra qemu-utils spice-client-glib-usb-acl-helper usb.ids va-driver-all virt-viewer xorriso\nSuggested packages:\n  gvfs i965-va-driver-shaders isoquery fuse3 libvisual-0.4-plugins gstreamer1.0-tools opus-tools pcscd pulseaudio\n  gstreamer1.0-libav gstreamer1.0-plugins-bad gstreamer1.0-plugins-good libvirt-clients-qemu libvirt-daemon\n  libvirt-login-shell python3-setuptools python3-cryptography python3-openssl python3-socks python-requests-doc\n  python3-brotli netcat python3-argcomplete xorriso-tcltk jigit cdck\nThe following NEW packages will be installed:\n  gir1.2-freedesktop gir1.2-libosinfo-1.0 glib-networking glib-networking-common glib-networking-services\n  gstreamer1.0-plugins-base i965-va-driver intel-media-va-driver iso-codes libaio1t64 libasyncns0\n  libboost-iostreams1.83.0 libboost-thread1.83.0 libburn4t64 libcacard0 libcdparanoia0 libcurl3t64-gnutls\n  libdaxctl1 libduktape207 libdw1t64 libflac12t64 libfuse3-3 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0\n  libgtk-vnc-2.0-0 libgvnc-1.0-0 libigdgmm12 libiscsi7 libisoburn1t64 libisofs6t64 libjson-glib-1.0-0\n  libjson-glib-1.0-common libmp3lame0 libmpg123-0t64 libndctl6 libnfs14 libnspr4 libnss3 libnuma1 libogg0\n  libopus0 liborc-0.4-0t64 libosinfo-1.0-0 libosinfo-l10n libpcsclite1 libphodav-3.0-0 libphodav-3.0-common\n  libpmem1 libpmemobj1 libpolkit-gobject-1-0 libproxy1v5 libpulse0 librados2 librbd1 librdmacm1t64 libsndfile1\n  libsoup-3.0-0 libsoup-3.0-common libspice-client-glib-2.0-8 libspice-client-gtk-3.0-5 libtheora0 libunwind8\n  liburing2 libusb-1.0-0 libusbredirhost1t64 libusbredirparser1t64 libva-x11-2 libva2 libvirt-clients\n  libvirt-glib-1.0-0 libvirt-glib-1.0-data libvirt-l10n libvirt0 libvisual-0.4-0 libvorbis0a libvorbisenc2\n  libvte-2.91-0 libxslt1.1 libyajl2 mesa-va-drivers osinfo-db pci.ids python3-certifi python3-chardet\n  python3-idna python3-libvirt python3-libxml2 python3-pkg-resources python3-requests python3-urllib3\n  qemu-block-extra qemu-utils spice-client-glib-usb-acl-helper usb.ids va-driver-all virt-viewer virtinst xorriso\n0 upgraded, 98 newly installed, 0 to remove and 4 not upgraded.\nNeed to get 34.2 MB of archives.\nAfter this operation, 143 MB of additional disk space will be used.\nDo you want to continue? [Y/n] y\nGet:1 http://archive.ubuntu.com/ubuntu noble/main amd64 iso-codes all 4.16.0-1 [3,492 kB]\nGet:2 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-pkg-resources all 68.1.2-2ubuntu1.2 [168 kB]\nGet:3 http://archive.ubuntu.com/ubuntu noble/main amd64 libfuse3-3 amd64 3.14.0-5build1 [83.1 kB]\nGet:4 http://archive.ubuntu.com/ubuntu noble/main amd64 libnuma1 amd64 2.0.18-1build1 [23.3 kB]\nGet:5 http://archive.ubuntu.com/ubuntu noble/main amd64 libusb-1.0-0 amd64 2:1.0.27-1 [54.0 kB]\nGet:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 pci.ids all 0.0~2024.03.31-1ubuntu0.1 [275 kB]\nGet:7 http://archive.ubuntu.com/ubuntu noble/main amd64 usb.ids all 2024.03.18-1 [223 kB]\nGet:8 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-freedesktop amd64 1.80.1-1 [49.7 kB]\nGet:9 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libcurl3t64-gnutls amd64 8.5.0-2ubuntu10.6 [333 kB]\nGet:10 http://archive.ubuntu.com/ubuntu noble/main amd64 libduktape207 amd64 2.7.0+tests-0ubuntu3 [143 kB]\nGet:11 http://archive.ubuntu.com/ubuntu noble/main amd64 libproxy1v5 amd64 0.5.4-4build1 [26.5 kB]\nGet:12 http://archive.ubuntu.com/ubuntu noble/main amd64 glib-networking-common all 2.80.0-1build1 [6,702 B]\nGet:13 http://archive.ubuntu.com/ubuntu noble/main amd64 glib-networking-services amd64 2.80.0-1build1 [12.8 kB]\nGet:14 http://archive.ubuntu.com/ubuntu noble/main amd64 glib-networking amd64 2.80.0-1build1 [64.1 kB]\nGet:15 http://archive.ubuntu.com/ubuntu noble/main amd64 libcdparanoia0 amd64 3.10.2+debian-14build3 [48.5 kB]\nGet:16 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdw1t64 amd64 0.190-1.1ubuntu0.1 [261 kB]\nGet:17 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libunwind8 amd64 1.6.2-3build1.1 [55.3 kB]\nGet:18 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer1.0-0 amd64 1.24.2-1ubuntu0.1 [1,165 kB]\nGet:19 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liborc-0.4-0t64 amd64 1:0.4.38-1ubuntu0.1 [207 kB]\nGet:20 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer-plugins-base1.0-0 amd64 1.24.2-1ubuntu0.2 [862 kB]\nGet:21 http://archive.ubuntu.com/ubuntu noble/main amd64 libogg0 amd64 1.3.5-3build1 [22.7 kB]\nGet:22 http://archive.ubuntu.com/ubuntu noble/main amd64 libopus0 amd64 1.4-1build1 [208 kB]\nGet:23 http://archive.ubuntu.com/ubuntu noble/main amd64 libtheora0 amd64 1.1.1+dfsg.1-16.1build3 [211 kB]\nGet:24 http://archive.ubuntu.com/ubuntu noble/main amd64 libvisual-0.4-0 amd64 0.4.2-2build1 [115 kB]\nGet:25 http://archive.ubuntu.com/ubuntu noble/main amd64 libvorbis0a amd64 1.3.7-1build3 [97.6 kB]\nGet:26 http://archive.ubuntu.com/ubuntu noble/main amd64 libvorbisenc2 amd64 1.3.7-1build3 [80.8 kB]\nGet:27 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-plugins-base amd64 1.24.2-1ubuntu0.2 [721 kB]\nGet:28 http://archive.ubuntu.com/ubuntu noble/universe amd64 libva2 amd64 2.20.0-2build1 [66.2 kB]\nGet:29 http://archive.ubuntu.com/ubuntu noble/universe amd64 libigdgmm12 amd64 22.3.17+ds1-1 [145 kB]\nGet:30 http://archive.ubuntu.com/ubuntu noble/universe amd64 intel-media-va-driver amd64 24.1.0+dfsg1-1 [4,022 kB]\nGet:31 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libaio1t64 amd64 0.3.113-6build1.1 [7,210 B]\nGet:32 http://archive.ubuntu.com/ubuntu noble/main amd64 libasyncns0 amd64 0.8-6build4 [11.3 kB]\nGet:33 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-iostreams1.83.0 amd64 1.83.0-2.1ubuntu3.1 [259 kB]\nGet:34 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libboost-thread1.83.0 amd64 1.83.0-2.1ubuntu3.1 [276 kB]\nGet:35 http://archive.ubuntu.com/ubuntu noble/main amd64 libburn4t64 amd64 1.5.6-1.1build1 [158 kB]\nGet:36 http://archive.ubuntu.com/ubuntu noble/main amd64 libnspr4 amd64 2:4.35-1.1build1 [117 kB]\nGet:37 http://archive.ubuntu.com/ubuntu noble/main amd64 libnss3 amd64 2:3.98-1build1 [1,445 kB]\nGet:38 http://archive.ubuntu.com/ubuntu noble/main amd64 libpcsclite1 amd64 2.0.3-1build1 [21.4 kB]\nGet:39 http://archive.ubuntu.com/ubuntu noble/main amd64 libcacard0 amd64 1:2.8.0-3build4 [36.5 kB]\nGet:40 http://archive.ubuntu.com/ubuntu noble/main amd64 libdaxctl1 amd64 77-2ubuntu2 [21.4 kB]\nGet:41 http://archive.ubuntu.com/ubuntu noble/main amd64 libflac12t64 amd64 1.4.3+ds-2.1ubuntu2 [197 kB]\nGet:42 http://archive.ubuntu.com/ubuntu noble/main amd64 libmp3lame0 amd64 3.100-6build1 [142 kB]\nGet:43 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libmpg123-0t64 amd64 1.32.5-1ubuntu1.1 [169 kB]\nGet:44 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsndfile1 amd64 1.2.2-1ubuntu5.24.04.1 [209 kB]\nGet:45 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpulse0 amd64 1:16.1+dfsg1-2ubuntu10.1 [292 kB]\nGet:46 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgvnc-1.0-0 amd64 1.3.1-1build2 [67.1 kB]\nGet:47 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgtk-vnc-2.0-0 amd64 1.3.1-1build2 [28.9 kB]\nGet:48 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 librdmacm1t64 amd64 50.0-2ubuntu0.2 [70.7 kB]\nGet:49 http://archive.ubuntu.com/ubuntu noble/main amd64 libiscsi7 amd64 1.19.0-3build4 [68.7 kB]\nGet:50 http://archive.ubuntu.com/ubuntu noble/main amd64 libisofs6t64 amd64 1.5.6.pl01-1.1ubuntu2 [220 kB]\nGet:51 http://archive.ubuntu.com/ubuntu noble/main amd64 libisoburn1t64 amd64 1:1.5.6-1.1ubuntu3 [405 kB]\nGet:52 http://archive.ubuntu.com/ubuntu noble/main amd64 libjson-glib-1.0-common all 1.8.0-2build2 [4,244 B]\nGet:53 http://archive.ubuntu.com/ubuntu noble/main amd64 libjson-glib-1.0-0 amd64 1.8.0-2build2 [68.0 kB]\nGet:54 http://archive.ubuntu.com/ubuntu noble/main amd64 libndctl6 amd64 77-2ubuntu2 [62.8 kB]\nGet:55 http://archive.ubuntu.com/ubuntu noble/main amd64 libnfs14 amd64 5.0.2-1build1 [109 kB]\nGet:56 http://archive.ubuntu.com/ubuntu noble/universe amd64 libphodav-3.0-common all 3.0-8build3 [14.9 kB]\nGet:57 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsoup-3.0-common all 3.4.4-5ubuntu0.4 [11.1 kB]\nGet:58 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsoup-3.0-0 amd64 3.4.4-5ubuntu0.4 [290 kB]\nGet:59 http://archive.ubuntu.com/ubuntu noble/universe amd64 libphodav-3.0-0 amd64 3.0-8build3 [29.9 kB]\nGet:60 http://archive.ubuntu.com/ubuntu noble/main amd64 libpmem1 amd64 1.13.1-1.1ubuntu2 [84.8 kB]\nGet:61 http://archive.ubuntu.com/ubuntu noble/main amd64 libpmemobj1 amd64 1.13.1-1.1ubuntu2 [116 kB]\nGet:62 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpolkit-gobject-1-0 amd64 124-2ubuntu1.24.04.2 [49.1 kB]\nGet:63 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 librados2 amd64 19.2.0-0ubuntu0.24.04.2 [3,972 kB]\nGet:64 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 librbd1 amd64 19.2.0-0ubuntu0.24.04.2 [3,351 kB]\nGet:65 http://archive.ubuntu.com/ubuntu noble/universe amd64 spice-client-glib-usb-acl-helper amd64 0.42-2ubuntu2 [12.5 kB]\nGet:66 http://archive.ubuntu.com/ubuntu noble/main amd64 libusbredirparser1t64 amd64 0.13.0-2.1build1 [16.5 kB]\nGet:67 http://archive.ubuntu.com/ubuntu noble/main amd64 libusbredirhost1t64 amd64 0.13.0-2.1build1 [20.0 kB]\nGet:68 http://archive.ubuntu.com/ubuntu noble/universe amd64 libspice-client-glib-2.0-8 amd64 0.42-2ubuntu2 [314 kB]\nGet:69 http://archive.ubuntu.com/ubuntu noble/universe amd64 libva-x11-2 amd64 2.20.0-2build1 [12.0 kB]\nGet:70 http://archive.ubuntu.com/ubuntu noble/universe amd64 libspice-client-gtk-3.0-5 amd64 0.42-2ubuntu2 [56.6 kB]\nGet:71 http://archive.ubuntu.com/ubuntu noble/main amd64 liburing2 amd64 2.5-1build1 [21.1 kB]\nGet:72 http://archive.ubuntu.com/ubuntu noble/main amd64 libyajl2 amd64 2.1.0-5build1 [20.2 kB]\nGet:73 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt0 amd64 10.0.0-2ubuntu8.7 [1,826 kB]\nGet:74 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-clients amd64 10.0.0-2ubuntu8.7 [438 kB]\nGet:75 http://archive.ubuntu.com/ubuntu noble/universe amd64 libvirt-glib-1.0-data all 5.0.0-2build3 [17.3 kB]\nGet:76 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-l10n all 10.0.0-2ubuntu8.7 [1,150 B]\nGet:77 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvte-2.91-0 amd64 0.76.0-1ubuntu0.1 [230 kB]\nGet:78 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libxslt1.1 amd64 1.1.39-0exp1ubuntu0.24.04.2 [167 kB]\nGet:79 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 mesa-va-drivers amd64 24.2.8-1ubuntu1~24.04.1 [19.5 kB]\nGet:80 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 osinfo-db all 0.20250124-0ubuntu0.24.04.1 [176 kB]\nGet:81 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-certifi all 2023.11.17-1 [165 kB]\nGet:82 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-chardet all 5.2.0+dfsg-1 [117 kB]\nGet:83 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-idna all 3.6-2ubuntu0.1 [49.0 kB]\nGet:84 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-libvirt amd64 10.0.0-1build1 [164 kB]\nGet:85 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 python3-libxml2 amd64 2.9.14+dfsg-1.3ubuntu3.3 [140 kB]\nGet:86 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-urllib3 all 2.0.7-1ubuntu0.2 [93.3 kB]\nGet:87 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 python3-requests all 2.31.0+dfsg-1ubuntu1.1 [50.8 kB]\nGet:88 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-utils amd64 1:8.2.2+ds-0ubuntu1.7 [2,220 kB]\nGet:89 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-block-extra amd64 1:8.2.2+ds-0ubuntu1.7 [111 kB]\nGet:90 http://archive.ubuntu.com/ubuntu noble/universe amd64 i965-va-driver amd64 2.4.1+dfsg1-1build2 [332 kB]\nGet:91 http://archive.ubuntu.com/ubuntu noble/universe amd64 va-driver-all amd64 2.20.0-2build1 [4,844 B]\nGet:92 http://archive.ubuntu.com/ubuntu noble/universe amd64 libvirt-glib-1.0-0 amd64 5.0.0-2build3 [121 kB]\nGet:93 http://archive.ubuntu.com/ubuntu noble/universe amd64 virt-viewer amd64 11.0-3build2 [285 kB]\nGet:94 http://archive.ubuntu.com/ubuntu noble/main amd64 xorriso amd64 1:1.5.6-1.1ubuntu3 [297 kB]\nGet:95 http://archive.ubuntu.com/ubuntu noble/universe amd64 libosinfo-l10n all 1.11.0-2build3 [50.6 kB]\nGet:96 http://archive.ubuntu.com/ubuntu noble/universe amd64 libosinfo-1.0-0 amd64 1.11.0-2build3 [91.5 kB]\nGet:97 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-libosinfo-1.0 amd64 1.11.0-2build3 [18.6 kB]\nGet:98 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 virtinst all 1:4.1.0-3ubuntu0.1 [891 kB]\nFetched 34.2 MB in 3s (10.8 MB/s)\nExtracting templates from packages: 100%\nSelecting previously unselected package iso-codes.\n(Reading database ... 26588 files and directories currently installed.)\nPreparing to unpack .../00-iso-codes_4.16.0-1_all.deb ...\nUnpacking iso-codes (4.16.0-1) ...\nSelecting previously unselected package python3-pkg-resources.\nPreparing to unpack .../01-python3-pkg-resources_68.1.2-2ubuntu1.2_all.deb ...\nUnpacking python3-pkg-resources (68.1.2-2ubuntu1.2) ...\nSelecting previously unselected package libfuse3-3:amd64.\nPreparing to unpack .../02-libfuse3-3_3.14.0-5build1_amd64.deb ...\nUnpacking libfuse3-3:amd64 (3.14.0-5build1) ...\nSelecting previously unselected package libnuma1:amd64.\nPreparing to unpack .../03-libnuma1_2.0.18-1build1_amd64.deb ...\nUnpacking libnuma1:amd64 (2.0.18-1build1) ...\nSelecting previously unselected package libusb-1.0-0:amd64.\nPreparing to unpack .../04-libusb-1.0-0_2%3a1.0.27-1_amd64.deb ...\nUnpacking libusb-1.0-0:amd64 (2:1.0.27-1) ...\nSelecting previously unselected package pci.ids.\nPreparing to unpack .../05-pci.ids_0.0~2024.03.31-1ubuntu0.1_all.deb ...\nUnpacking pci.ids (0.0~2024.03.31-1ubuntu0.1) ...\nSelecting previously unselected package usb.ids.\nPreparing to unpack .../06-usb.ids_2024.03.18-1_all.deb ...\nUnpacking usb.ids (2024.03.18-1) ...\nSelecting previously unselected package gir1.2-freedesktop:amd64.\nPreparing to unpack .../07-gir1.2-freedesktop_1.80.1-1_amd64.deb ...\nUnpacking gir1.2-freedesktop:amd64 (1.80.1-1) ...\nSelecting previously unselected package libcurl3t64-gnutls:amd64.\nPreparing to unpack .../08-libcurl3t64-gnutls_8.5.0-2ubuntu10.6_amd64.deb ...\nUnpacking libcurl3t64-gnutls:amd64 (8.5.0-2ubuntu10.6) ...\nSelecting previously unselected package libduktape207:amd64.\nPreparing to unpack .../09-libduktape207_2.7.0+tests-0ubuntu3_amd64.deb ...\nUnpacking libduktape207:amd64 (2.7.0+tests-0ubuntu3) ...\nSelecting previously unselected package libproxy1v5:amd64.\nPreparing to unpack .../10-libproxy1v5_0.5.4-4build1_amd64.deb ...\nUnpacking libproxy1v5:amd64 (0.5.4-4build1) ...\nSelecting previously unselected package glib-networking-common.\nPreparing to unpack .../11-glib-networking-common_2.80.0-1build1_all.deb ...\nUnpacking glib-networking-common (2.80.0-1build1) ...\nSelecting previously unselected package glib-networking-services.\nPreparing to unpack .../12-glib-networking-services_2.80.0-1build1_amd64.deb ...\nUnpacking glib-networking-services (2.80.0-1build1) ...\nSelecting previously unselected package glib-networking:amd64.\nPreparing to unpack .../13-glib-networking_2.80.0-1build1_amd64.deb ...\nUnpacking glib-networking:amd64 (2.80.0-1build1) ...\nSelecting previously unselected package libcdparanoia0:amd64.\nPreparing to unpack .../14-libcdparanoia0_3.10.2+debian-14build3_amd64.deb ...\nUnpacking libcdparanoia0:amd64 (3.10.2+debian-14build3) ...\nSelecting previously unselected package libdw1t64:amd64.\nPreparing to unpack .../15-libdw1t64_0.190-1.1ubuntu0.1_amd64.deb ...\nUnpacking libdw1t64:amd64 (0.190-1.1ubuntu0.1) ...\nSelecting previously unselected package libunwind8:amd64.\nPreparing to unpack .../16-libunwind8_1.6.2-3build1.1_amd64.deb ...\nUnpacking libunwind8:amd64 (1.6.2-3build1.1) ...\nSelecting previously unselected package libgstreamer1.0-0:amd64.\nPreparing to unpack .../17-libgstreamer1.0-0_1.24.2-1ubuntu0.1_amd64.deb ...\nUnpacking libgstreamer1.0-0:amd64 (1.24.2-1ubuntu0.1) ...\nSelecting previously unselected package liborc-0.4-0t64:amd64.\nPreparing to unpack .../18-liborc-0.4-0t64_1%3a0.4.38-1ubuntu0.1_amd64.deb ...\nUnpacking liborc-0.4-0t64:amd64 (1:0.4.38-1ubuntu0.1) ...\nSelecting previously unselected package libgstreamer-plugins-base1.0-0:amd64.\nPreparing to unpack .../19-libgstreamer-plugins-base1.0-0_1.24.2-1ubuntu0.2_amd64.deb ...\nUnpacking libgstreamer-plugins-base1.0-0:amd64 (1.24.2-1ubuntu0.2) ...\nSelecting previously unselected package libogg0:amd64.\nPreparing to unpack .../20-libogg0_1.3.5-3build1_amd64.deb ...\nUnpacking libogg0:amd64 (1.3.5-3build1) ...\nSelecting previously unselected package libopus0:amd64.\nPreparing to unpack .../21-libopus0_1.4-1build1_amd64.deb ...\nUnpacking libopus0:amd64 (1.4-1build1) ...\nSelecting previously unselected package libtheora0:amd64.\nPreparing to unpack .../22-libtheora0_1.1.1+dfsg.1-16.1build3_amd64.deb ...\nUnpacking libtheora0:amd64 (1.1.1+dfsg.1-16.1build3) ...\nSelecting previously unselected package libvisual-0.4-0:amd64.\nPreparing to unpack .../23-libvisual-0.4-0_0.4.2-2build1_amd64.deb ...\nUnpacking libvisual-0.4-0:amd64 (0.4.2-2build1) ...\nSelecting previously unselected package libvorbis0a:amd64.\nPreparing to unpack .../24-libvorbis0a_1.3.7-1build3_amd64.deb ...\nUnpacking libvorbis0a:amd64 (1.3.7-1build3) ...\nSelecting previously unselected package libvorbisenc2:amd64.\nPreparing to unpack .../25-libvorbisenc2_1.3.7-1build3_amd64.deb ...\nUnpacking libvorbisenc2:amd64 (1.3.7-1build3) ...\nSelecting previously unselected package gstreamer1.0-plugins-base:amd64.\nPreparing to unpack .../26-gstreamer1.0-plugins-base_1.24.2-1ubuntu0.2_amd64.deb ...\nUnpacking gstreamer1.0-plugins-base:amd64 (1.24.2-1ubuntu0.2) ...\nSelecting previously unselected package libva2:amd64.\nPreparing to unpack .../27-libva2_2.20.0-2build1_amd64.deb ...\nUnpacking libva2:amd64 (2.20.0-2build1) ...\nSelecting previously unselected package libigdgmm12:amd64.\nPreparing to unpack .../28-libigdgmm12_22.3.17+ds1-1_amd64.deb ...\nUnpacking libigdgmm12:amd64 (22.3.17+ds1-1) ...\nSelecting previously unselected package intel-media-va-driver:amd64.\nPreparing to unpack .../29-intel-media-va-driver_24.1.0+dfsg1-1_amd64.deb ...\nUnpacking intel-media-va-driver:amd64 (24.1.0+dfsg1-1) ...\nSelecting previously unselected package libaio1t64:amd64.\nPreparing to unpack .../30-libaio1t64_0.3.113-6build1.1_amd64.deb ...\nUnpacking libaio1t64:amd64 (0.3.113-6build1.1) ...\nSelecting previously unselected package libasyncns0:amd64.\nPreparing to unpack .../31-libasyncns0_0.8-6build4_amd64.deb ...\nUnpacking libasyncns0:amd64 (0.8-6build4) ...\nSelecting previously unselected package libboost-iostreams1.83.0:amd64.\nPreparing to unpack .../32-libboost-iostreams1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...\nUnpacking libboost-iostreams1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...\nSelecting previously unselected package libboost-thread1.83.0:amd64.\nPreparing to unpack .../33-libboost-thread1.83.0_1.83.0-2.1ubuntu3.1_amd64.deb ...\nUnpacking libboost-thread1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...\nSelecting previously unselected package libburn4t64:amd64.\nPreparing to unpack .../34-libburn4t64_1.5.6-1.1build1_amd64.deb ...\nUnpacking libburn4t64:amd64 (1.5.6-1.1build1) ...\nSelecting previously unselected package libnspr4:amd64.\nPreparing to unpack .../35-libnspr4_2%3a4.35-1.1build1_amd64.deb ...\nUnpacking libnspr4:amd64 (2:4.35-1.1build1) ...\nSelecting previously unselected package libnss3:amd64.\nPreparing to unpack .../36-libnss3_2%3a3.98-1build1_amd64.deb ...\nUnpacking libnss3:amd64 (2:3.98-1build1) ...\nSelecting previously unselected package libpcsclite1:amd64.\nPreparing to unpack .../37-libpcsclite1_2.0.3-1build1_amd64.deb ...\nUnpacking libpcsclite1:amd64 (2.0.3-1build1) ...\nSelecting previously unselected package libcacard0:amd64.\nPreparing to unpack .../38-libcacard0_1%3a2.8.0-3build4_amd64.deb ...\nUnpacking libcacard0:amd64 (1:2.8.0-3build4) ...\nSelecting previously unselected package libdaxctl1:amd64.\nPreparing to unpack .../39-libdaxctl1_77-2ubuntu2_amd64.deb ...\nUnpacking libdaxctl1:amd64 (77-2ubuntu2) ...\nSelecting previously unselected package libflac12t64:amd64.\nPreparing to unpack .../40-libflac12t64_1.4.3+ds-2.1ubuntu2_amd64.deb ...\nUnpacking libflac12t64:amd64 (1.4.3+ds-2.1ubuntu2) ...\nSelecting previously unselected package libmp3lame0:amd64.\nPreparing to unpack .../41-libmp3lame0_3.100-6build1_amd64.deb ...\nUnpacking libmp3lame0:amd64 (3.100-6build1) ...\nSelecting previously unselected package libmpg123-0t64:amd64.\nPreparing to unpack .../42-libmpg123-0t64_1.32.5-1ubuntu1.1_amd64.deb ...\nUnpacking libmpg123-0t64:amd64 (1.32.5-1ubuntu1.1) ...\nSelecting previously unselected package libsndfile1:amd64.\nPreparing to unpack .../43-libsndfile1_1.2.2-1ubuntu5.24.04.1_amd64.deb ...\nUnpacking libsndfile1:amd64 (1.2.2-1ubuntu5.24.04.1) ...\nSelecting previously unselected package libpulse0:amd64.\nPreparing to unpack .../44-libpulse0_1%3a16.1+dfsg1-2ubuntu10.1_amd64.deb ...\nUnpacking libpulse0:amd64 (1:16.1+dfsg1-2ubuntu10.1) ...\nSelecting previously unselected package libgvnc-1.0-0:amd64.\nPreparing to unpack .../45-libgvnc-1.0-0_1.3.1-1build2_amd64.deb ...\nUnpacking libgvnc-1.0-0:amd64 (1.3.1-1build2) ...\nSelecting previously unselected package libgtk-vnc-2.0-0:amd64.\nPreparing to unpack .../46-libgtk-vnc-2.0-0_1.3.1-1build2_amd64.deb ...\nUnpacking libgtk-vnc-2.0-0:amd64 (1.3.1-1build2) ...\nSelecting previously unselected package librdmacm1t64:amd64.\nPreparing to unpack .../47-librdmacm1t64_50.0-2ubuntu0.2_amd64.deb ...\nUnpacking librdmacm1t64:amd64 (50.0-2ubuntu0.2) ...\nSelecting previously unselected package libiscsi7:amd64.\nPreparing to unpack .../48-libiscsi7_1.19.0-3build4_amd64.deb ...\nUnpacking libiscsi7:amd64 (1.19.0-3build4) ...\nSelecting previously unselected package libisofs6t64:amd64.\nPreparing to unpack .../49-libisofs6t64_1.5.6.pl01-1.1ubuntu2_amd64.deb ...\nUnpacking libisofs6t64:amd64 (1.5.6.pl01-1.1ubuntu2) ...\nSelecting previously unselected package libisoburn1t64:amd64.\nPreparing to unpack .../50-libisoburn1t64_1%3a1.5.6-1.1ubuntu3_amd64.deb ...\nUnpacking libisoburn1t64:amd64 (1:1.5.6-1.1ubuntu3) ...\nSelecting previously unselected package libjson-glib-1.0-common.\nPreparing to unpack .../51-libjson-glib-1.0-common_1.8.0-2build2_all.deb ...\nUnpacking libjson-glib-1.0-common (1.8.0-2build2) ...\nSelecting previously unselected package libjson-glib-1.0-0:amd64.\nPreparing to unpack .../52-libjson-glib-1.0-0_1.8.0-2build2_amd64.deb ...\nUnpacking libjson-glib-1.0-0:amd64 (1.8.0-2build2) ...\nSelecting previously unselected package libndctl6:amd64.\nPreparing to unpack .../53-libndctl6_77-2ubuntu2_amd64.deb ...\nUnpacking libndctl6:amd64 (77-2ubuntu2) ...\nSelecting previously unselected package libnfs14:amd64.\nPreparing to unpack .../54-libnfs14_5.0.2-1build1_amd64.deb ...\nUnpacking libnfs14:amd64 (5.0.2-1build1) ...\nSelecting previously unselected package libphodav-3.0-common.\nPreparing to unpack .../55-libphodav-3.0-common_3.0-8build3_all.deb ...\nUnpacking libphodav-3.0-common (3.0-8build3) ...\nSelecting previously unselected package libsoup-3.0-common.\nPreparing to unpack .../56-libsoup-3.0-common_3.4.4-5ubuntu0.4_all.deb ...\nUnpacking libsoup-3.0-common (3.4.4-5ubuntu0.4) ...\nSelecting previously unselected package libsoup-3.0-0:amd64.\nPreparing to unpack .../57-libsoup-3.0-0_3.4.4-5ubuntu0.4_amd64.deb ...\nUnpacking libsoup-3.0-0:amd64 (3.4.4-5ubuntu0.4) ...\nSelecting previously unselected package libphodav-3.0-0:amd64.\nPreparing to unpack .../58-libphodav-3.0-0_3.0-8build3_amd64.deb ...\nUnpacking libphodav-3.0-0:amd64 (3.0-8build3) ...\nSelecting previously unselected package libpmem1:amd64.\nPreparing to unpack .../59-libpmem1_1.13.1-1.1ubuntu2_amd64.deb ...\nUnpacking libpmem1:amd64 (1.13.1-1.1ubuntu2) ...\nSelecting previously unselected package libpmemobj1:amd64.\nPreparing to unpack .../60-libpmemobj1_1.13.1-1.1ubuntu2_amd64.deb ...\nUnpacking libpmemobj1:amd64 (1.13.1-1.1ubuntu2) ...\nSelecting previously unselected package libpolkit-gobject-1-0:amd64.\nPreparing to unpack .../61-libpolkit-gobject-1-0_124-2ubuntu1.24.04.2_amd64.deb ...\nUnpacking libpolkit-gobject-1-0:amd64 (124-2ubuntu1.24.04.2) ...\nSelecting previously unselected package librados2.\nPreparing to unpack .../62-librados2_19.2.0-0ubuntu0.24.04.2_amd64.deb ...\nUnpacking librados2 (19.2.0-0ubuntu0.24.04.2) ...\nSelecting previously unselected package librbd1.\nPreparing to unpack .../63-librbd1_19.2.0-0ubuntu0.24.04.2_amd64.deb ...\nUnpacking librbd1 (19.2.0-0ubuntu0.24.04.2) ...\nSelecting previously unselected package spice-client-glib-usb-acl-helper.\nPreparing to unpack .../64-spice-client-glib-usb-acl-helper_0.42-2ubuntu2_amd64.deb ...\nUnpacking spice-client-glib-usb-acl-helper (0.42-2ubuntu2) ...\nSelecting previously unselected package libusbredirparser1t64:amd64.\nPreparing to unpack .../65-libusbredirparser1t64_0.13.0-2.1build1_amd64.deb ...\nUnpacking libusbredirparser1t64:amd64 (0.13.0-2.1build1) ...\nSelecting previously unselected package libusbredirhost1t64:amd64.\nPreparing to unpack .../66-libusbredirhost1t64_0.13.0-2.1build1_amd64.deb ...\nUnpacking libusbredirhost1t64:amd64 (0.13.0-2.1build1) ...\nSelecting previously unselected package libspice-client-glib-2.0-8:amd64.\nPreparing to unpack .../67-libspice-client-glib-2.0-8_0.42-2ubuntu2_amd64.deb ...\nUnpacking libspice-client-glib-2.0-8:amd64 (0.42-2ubuntu2) ...\nSelecting previously unselected package libva-x11-2:amd64.\nPreparing to unpack .../68-libva-x11-2_2.20.0-2build1_amd64.deb ...\nUnpacking libva-x11-2:amd64 (2.20.0-2build1) ...\nSelecting previously unselected package libspice-client-gtk-3.0-5:amd64.\nPreparing to unpack .../69-libspice-client-gtk-3.0-5_0.42-2ubuntu2_amd64.deb ...\nUnpacking libspice-client-gtk-3.0-5:amd64 (0.42-2ubuntu2) ...\nSelecting previously unselected package liburing2:amd64.\nPreparing to unpack .../70-liburing2_2.5-1build1_amd64.deb ...\nUnpacking liburing2:amd64 (2.5-1build1) ...\nSelecting previously unselected package libyajl2:amd64.\nPreparing to unpack .../71-libyajl2_2.1.0-5build1_amd64.deb ...\nUnpacking libyajl2:amd64 (2.1.0-5build1) ...\nSelecting previously unselected package libvirt0:amd64.\nPreparing to unpack .../72-libvirt0_10.0.0-2ubuntu8.7_amd64.deb ...\nUnpacking libvirt0:amd64 (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libvirt-clients.\nPreparing to unpack .../73-libvirt-clients_10.0.0-2ubuntu8.7_amd64.deb ...\nUnpacking libvirt-clients (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libvirt-glib-1.0-data.\nPreparing to unpack .../74-libvirt-glib-1.0-data_5.0.0-2build3_all.deb ...\nUnpacking libvirt-glib-1.0-data (5.0.0-2build3) ...\nSelecting previously unselected package libvirt-l10n.\nPreparing to unpack .../75-libvirt-l10n_10.0.0-2ubuntu8.7_all.deb ...\nUnpacking libvirt-l10n (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libvte-2.91-0:amd64.\nPreparing to unpack .../76-libvte-2.91-0_0.76.0-1ubuntu0.1_amd64.deb ...\nUnpacking libvte-2.91-0:amd64 (0.76.0-1ubuntu0.1) ...\nSelecting previously unselected package libxslt1.1:amd64.\nPreparing to unpack .../77-libxslt1.1_1.1.39-0exp1ubuntu0.24.04.2_amd64.deb ...\nUnpacking libxslt1.1:amd64 (1.1.39-0exp1ubuntu0.24.04.2) ...\nSelecting previously unselected package mesa-va-drivers:amd64.\nPreparing to unpack .../78-mesa-va-drivers_24.2.8-1ubuntu1~24.04.1_amd64.deb ...\nUnpacking mesa-va-drivers:amd64 (24.2.8-1ubuntu1~24.04.1) ...\nSelecting previously unselected package osinfo-db.\nPreparing to unpack .../79-osinfo-db_0.20250124-0ubuntu0.24.04.1_all.deb ...\nUnpacking osinfo-db (0.20250124-0ubuntu0.24.04.1) ...\nSelecting previously unselected package python3-certifi.\nPreparing to unpack .../80-python3-certifi_2023.11.17-1_all.deb ...\nUnpacking python3-certifi (2023.11.17-1) ...\nSelecting previously unselected package python3-chardet.\nPreparing to unpack .../81-python3-chardet_5.2.0+dfsg-1_all.deb ...\nUnpacking python3-chardet (5.2.0+dfsg-1) ...\nSelecting previously unselected package python3-idna.\nPreparing to unpack .../82-python3-idna_3.6-2ubuntu0.1_all.deb ...\nUnpacking python3-idna (3.6-2ubuntu0.1) ...\nSelecting previously unselected package python3-libvirt.\nPreparing to unpack .../83-python3-libvirt_10.0.0-1build1_amd64.deb ...\nUnpacking python3-libvirt (10.0.0-1build1) ...\nSelecting previously unselected package python3-libxml2:amd64.\nPreparing to unpack .../84-python3-libxml2_2.9.14+dfsg-1.3ubuntu3.3_amd64.deb ...\nUnpacking python3-libxml2:amd64 (2.9.14+dfsg-1.3ubuntu3.3) ...\nSelecting previously unselected package python3-urllib3.\nPreparing to unpack .../85-python3-urllib3_2.0.7-1ubuntu0.2_all.deb ...\nUnpacking python3-urllib3 (2.0.7-1ubuntu0.2) ...\nSelecting previously unselected package python3-requests.\nPreparing to unpack .../86-python3-requests_2.31.0+dfsg-1ubuntu1.1_all.deb ...\nUnpacking python3-requests (2.31.0+dfsg-1ubuntu1.1) ...\nSelecting previously unselected package qemu-utils.\nPreparing to unpack .../87-qemu-utils_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-utils (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package qemu-block-extra.\nPreparing to unpack .../88-qemu-block-extra_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-block-extra (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package i965-va-driver:amd64.\nPreparing to unpack .../89-i965-va-driver_2.4.1+dfsg1-1build2_amd64.deb ...\nUnpacking i965-va-driver:amd64 (2.4.1+dfsg1-1build2) ...\nSelecting previously unselected package va-driver-all:amd64.\nPreparing to unpack .../90-va-driver-all_2.20.0-2build1_amd64.deb ...\nUnpacking va-driver-all:amd64 (2.20.0-2build1) ...\nSelecting previously unselected package libvirt-glib-1.0-0:amd64.\nPreparing to unpack .../91-libvirt-glib-1.0-0_5.0.0-2build3_amd64.deb ...\nUnpacking libvirt-glib-1.0-0:amd64 (5.0.0-2build3) ...\nSelecting previously unselected package virt-viewer.\nPreparing to unpack .../92-virt-viewer_11.0-3build2_amd64.deb ...\nUnpacking virt-viewer (11.0-3build2) ...\nSelecting previously unselected package xorriso.\nPreparing to unpack .../93-xorriso_1%3a1.5.6-1.1ubuntu3_amd64.deb ...\nUnpacking xorriso (1:1.5.6-1.1ubuntu3) ...\nSelecting previously unselected package libosinfo-l10n.\nPreparing to unpack .../94-libosinfo-l10n_1.11.0-2build3_all.deb ...\nUnpacking libosinfo-l10n (1.11.0-2build3) ...\nSelecting previously unselected package libosinfo-1.0-0:amd64.\nPreparing to unpack .../95-libosinfo-1.0-0_1.11.0-2build3_amd64.deb ...\nUnpacking libosinfo-1.0-0:amd64 (1.11.0-2build3) ...\nSelecting previously unselected package gir1.2-libosinfo-1.0:amd64.\nPreparing to unpack .../96-gir1.2-libosinfo-1.0_1.11.0-2build3_amd64.deb ...\nUnpacking gir1.2-libosinfo-1.0:amd64 (1.11.0-2build3) ...\nSelecting previously unselected package virtinst.\nPreparing to unpack .../97-virtinst_1%3a4.1.0-3ubuntu0.1_all.deb ...\nUnpacking virtinst (1:4.1.0-3ubuntu0.1) ...\nSetting up python3-pkg-resources (68.1.2-2ubuntu1.2) ...\nSetting up libcdparanoia0:amd64 (3.10.2+debian-14build3) ...\nSetting up pci.ids (0.0~2024.03.31-1ubuntu0.1) ...\nSetting up gir1.2-freedesktop:amd64 (1.80.1-1) ...\nSetting up libogg0:amd64 (1.3.5-3build1) ...\nSetting up libphodav-3.0-common (3.0-8build3) ...\nSetting up libvisual-0.4-0:amd64 (0.4.2-2build1) ...\nSetting up libyajl2:amd64 (2.1.0-5build1) ...\nSetting up libcurl3t64-gnutls:amd64 (8.5.0-2ubuntu10.6) ...\nSetting up libboost-thread1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...\nSetting up libigdgmm12:amd64 (22.3.17+ds1-1) ...\nSetting up libsoup-3.0-common (3.4.4-5ubuntu0.4) ...\nSetting up libmpg123-0t64:amd64 (1.32.5-1ubuntu1.1) ...\nSetting up libvte-2.91-0:amd64 (0.76.0-1ubuntu0.1) ...\nSetting up libunwind8:amd64 (1.6.2-3build1.1) ...\nSetting up libnfs14:amd64 (5.0.2-1build1) ...\nSetting up liborc-0.4-0t64:amd64 (1:0.4.38-1ubuntu0.1) ...\nSetting up libdw1t64:amd64 (0.190-1.1ubuntu0.1) ...\nSetting up python3-libxml2:amd64 (2.9.14+dfsg-1.3ubuntu3.3) ...\nSetting up python3-chardet (5.2.0+dfsg-1) ...\nSetting up libvirt-glib-1.0-data (5.0.0-2build3) ...\nSetting up libva2:amd64 (2.20.0-2build1) ...\nSetting up python3-certifi (2023.11.17-1) ...\nSetting up libnspr4:amd64 (2:4.35-1.1build1) ...\nSetting up libboost-iostreams1.83.0:amd64 (1.83.0-2.1ubuntu3.1) ...\nSetting up libopus0:amd64 (1.4-1build1) ...\nSetting up intel-media-va-driver:amd64 (24.1.0+dfsg1-1) ...\nSetting up libvorbis0a:amd64 (1.3.7-1build3) ...\nSetting up python3-idna (3.6-2ubuntu0.1) ...\nSetting up usb.ids (2024.03.18-1) ...\nSetting up osinfo-db (0.20250124-0ubuntu0.24.04.1) ...\nSetting up libpcsclite1:amd64 (2.0.3-1build1) ...\nSetting up libfuse3-3:amd64 (3.14.0-5build1) ...\nSetting up libdaxctl1:amd64 (77-2ubuntu2) ...\nSetting up python3-urllib3 (2.0.7-1ubuntu0.2) ...\nSetting up libnuma1:amd64 (2.0.18-1build1) ...\nSetting up libvirt0:amd64 (10.0.0-2ubuntu8.7) ...\nSetting up libaio1t64:amd64 (0.3.113-6build1.1) ...\nSetting up libvirt-glib-1.0-0:amd64 (5.0.0-2build3) ...\nSetting up libisofs6t64:amd64 (1.5.6.pl01-1.1ubuntu2) ...\nSetting up libduktape207:amd64 (2.7.0+tests-0ubuntu3) ...\nSetting up libasyncns0:amd64 (0.8-6build4) ...\nSetting up libusbredirparser1t64:amd64 (0.13.0-2.1build1) ...\nSetting up libtheora0:amd64 (1.1.1+dfsg.1-16.1build3) ...\nSetting up libxslt1.1:amd64 (1.1.39-0exp1ubuntu0.24.04.2) ...\nSetting up libburn4t64:amd64 (1.5.6-1.1build1) ...\nSetting up libndctl6:amd64 (77-2ubuntu2) ...\nSetting up librdmacm1t64:amd64 (50.0-2ubuntu0.2) ...\nSetting up libjson-glib-1.0-common (1.8.0-2build2) ...\nSetting up libflac12t64:amd64 (1.4.3+ds-2.1ubuntu2) ...\nSetting up libusb-1.0-0:amd64 (2:1.0.27-1) ...\nSetting up mesa-va-drivers:amd64 (24.2.8-1ubuntu1~24.04.1) ...\nSetting up glib-networking-common (2.80.0-1build1) ...\nSetting up liburing2:amd64 (2.5-1build1) ...\nSetting up libiscsi7:amd64 (1.19.0-3build4) ...\nSetting up libisoburn1t64:amd64 (1:1.5.6-1.1ubuntu3) ...\nSetting up xorriso (1:1.5.6-1.1ubuntu3) ...\nSetting up libpmem1:amd64 (1.13.1-1.1ubuntu2) ...\nSetting up libva-x11-2:amd64 (2.20.0-2build1) ...\nSetting up iso-codes (4.16.0-1) ...\nSetting up libpolkit-gobject-1-0:amd64 (124-2ubuntu1.24.04.2) ...\nSetting up libgstreamer1.0-0:amd64 (1.24.2-1ubuntu0.1) ...\nSetcap worked! gst-ptp-helper is not suid!\nSetting up libmp3lame0:amd64 (3.100-6build1) ...\nSetting up i965-va-driver:amd64 (2.4.1+dfsg1-1build2) ...\nSetting up libosinfo-l10n (1.11.0-2build3) ...\nSetting up libvorbisenc2:amd64 (1.3.7-1build3) ...\nSetting up librados2 (19.2.0-0ubuntu0.24.04.2) ...\nSetting up libproxy1v5:amd64 (0.5.4-4build1) ...\nSetting up python3-libvirt (10.0.0-1build1) ...\nSetting up libvirt-clients (10.0.0-2ubuntu8.7) ...\nSetting up spice-client-glib-usb-acl-helper (0.42-2ubuntu2) ...\nSetting up libgstreamer-plugins-base1.0-0:amd64 (1.24.2-1ubuntu0.2) ...\nSetting up libnss3:amd64 (2:3.98-1build1) ...\nSetting up libcacard0:amd64 (1:2.8.0-3build4) ...\nSetting up libusbredirhost1t64:amd64 (0.13.0-2.1build1) ...\nSetting up libjson-glib-1.0-0:amd64 (1.8.0-2build2) ...\nSetting up gstreamer1.0-plugins-base:amd64 (1.24.2-1ubuntu0.2) ...\nSetting up libvirt-l10n (10.0.0-2ubuntu8.7) ...\nSetting up va-driver-all:amd64 (2.20.0-2build1) ...\nSetting up python3-requests (2.31.0+dfsg-1ubuntu1.1) ...\nSetting up libpmemobj1:amd64 (1.13.1-1.1ubuntu2) ...\nSetting up librbd1 (19.2.0-0ubuntu0.24.04.2) ...\nSetting up libsndfile1:amd64 (1.2.2-1ubuntu5.24.04.1) ...\nSetting up qemu-utils (1:8.2.2+ds-0ubuntu1.7) ...\nSetting up qemu-block-extra (1:8.2.2+ds-0ubuntu1.7) ...\nCreated symlink /etc/systemd/system/multi-user.target.wants/run-qemu.mount → /usr/lib/systemd/system/run-qemu.mount\n.\nSetting up glib-networking-services (2.80.0-1build1) ...\nSetting up libpulse0:amd64 (1:16.1+dfsg1-2ubuntu10.1) ...\nSetting up libgvnc-1.0-0:amd64 (1.3.1-1build2) ...\nSetting up glib-networking:amd64 (2.80.0-1build1) ...\nSetting up libgtk-vnc-2.0-0:amd64 (1.3.1-1build2) ...\nSetting up libsoup-3.0-0:amd64 (3.4.4-5ubuntu0.4) ...\nSetting up libphodav-3.0-0:amd64 (3.0-8build3) ...\nSetting up libosinfo-1.0-0:amd64 (1.11.0-2build3) ...\nSetting up gir1.2-libosinfo-1.0:amd64 (1.11.0-2build3) ...\nSetting up libspice-client-glib-2.0-8:amd64 (0.42-2ubuntu2) ...\nSetting up virtinst (1:4.1.0-3ubuntu0.1) ...\nSetting up libspice-client-gtk-3.0-5:amd64 (0.42-2ubuntu2) ...\nSetting up virt-viewer (11.0-3build2) ...\nProcessing triggers for libc-bin (2.39-0ubuntu8.4) ...\nProcessing triggers for man-db (2.12.0-4build2) ...\nProcessing triggers for libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.4) ...\nProcessing triggers for shared-mime-info (2.4-4) ...\nProcessing triggers for hicolor-icon-theme (0.17-2) ...\n📦[waylon@ubuntu ~]$ virt-install --version\nvirsh list --all\n4.1.0\nerror: failed to connect to the hypervisor\nerror: binary '/usr/sbin/libvirtd' does not exist in $PATH: No such file or directory\n\n📦[waylon@ubuntu ~]$ exit\nlogout\nwaylon@razorcrest:~$ distrobox enter --additional-flags \"--device /dev/kvm\" ubuntu\nError: unknown flag: --device\nSee 'podman exec --help'\nwaylon@razorcrest:~$ distrobox enter ubuntu\n📦[waylon@ubuntu ~]$ ls -l /run/libvirt/\ncommon/               libvirt-sock          nodedev/              secrets/              virtlogd-admin-sock\nhostdevmgr/           libvirt-sock-ro       nwfilter/             storage/              virtlogd-sock\ninterface/            lxc/                  nwfilter-binding/     virtlockd-admin-sock\nlibvirt-admin-sock    network/              qemu/                 virtlockd-sock\n📦[waylon@ubuntu ~]$ ls -l /run/libvirt/libvirt-sock\nsrw-rw-rw-. 1 nobody nogroup 0 Jun 27 11:09 /run/libvirt/libvirt-sock\n📦[waylon@ubuntu ~]$ sudo usermod -aG libvirt $USER\nusermod: group 'libvirt' does not exist\n📦[waylon@ubuntu ~]$ export LIBVIRT_DEFAULT_URI=\"qemu+unix:///system\"\nvirsh list --all\n Id   Name   State\n--------------------\n\n📦[waylon@ubuntu ~]$ ls -l /run/libvirt/libvirt-sock\nsrw-rw-rw-. 1 nobody nogroup 0 Jun 27 11:09 /run/libvirt/libvirt-sock\n📦[waylon@ubuntu ~]$ virt-install --version\nvirsh list --all\n4.1.0\n Id   Name   State\n--------------------\n\n📦[waylon@ubuntu ~]$ sudo apt update\nsudo apt install virt-manager -y\nHit:1 http://security.ubuntu.com/ubuntu noble-security InRelease\nHit:2 http://archive.ubuntu.com/ubuntu noble InRelease\nHit:3 http://archive.ubuntu.com/ubuntu noble-updates InRelease\nHit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\n4 packages can be upgraded. Run 'apt list --upgradable' to see them.\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\nThe following additional packages will be installed:\n  acl alsa-topology-conf alsa-ucm-conf cpu-checker dmeventd dmidecode dns-root-data dnsmasq-base gettext-base\n  gir1.2-atk-1.0 gir1.2-ayatanaappindicator3-0.1 gir1.2-gdkpixbuf-2.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0\n  gir1.2-gtk-vnc-2.0 gir1.2-gtksource-4 gir1.2-harfbuzz-0.0 gir1.2-libvirt-glib-1.0 gir1.2-pango-1.0\n  gir1.2-spiceclientglib-2.0 gir1.2-spiceclientgtk-3.0 gir1.2-vte-2.91 gstreamer1.0-plugins-good gstreamer1.0-x\n  iptables ipxe-qemu ipxe-qemu-256k-compat-efi-roms libaa1 libasound2-data libasound2t64 libavc1394-0\n  libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbrlapi0.8 libcaca0\n  libdbusmenu-glib4 libdbusmenu-gtk3-4 libdecor-0-0 libdecor-0-plugin-1-gtk libdevmapper-event1.02.1 libdv4t64\n  libfdt1 libgstreamer-plugins-good1.0-0 libgtksourceview-4-0 libgtksourceview-4-common libgudev-1.0-0\n  libharfbuzz-gobject0 libiec61883-0 libip4tc2 libip6tc2 libjack-jackd2-0 liblvm2cmd2.03 libnetfilter-conntrack3\n  libnfnetlink0 libnftables1 libnftnl11 libnss-mymachines libpangoxft-1.0-0 libparted2t64 libpipewire-0.3-0t64\n  libpipewire-0.3-common libpolkit-agent-1-0 libraw1394-11 libsamplerate0 libsdl2-2.0-0 libshout3 libslang2\n  libslirp0 libspa-0.2-modules libspeex1 libspice-server1 libtag1v5 libtag1v5-vanilla libtpms0 libtwolame0\n  libv4l-0t64 libv4lconvert0t64 libvirglrenderer1 libvirt-daemon libvirt-daemon-config-network\n  libvirt-daemon-config-nwfilter libvirt-daemon-driver-qemu libvirt-daemon-system libvirt-daemon-system-systemd\n  libvpx9 libwavpack1 libwebrtc-audio-processing1 libxft2 libxml2-utils libxss1 libxv1 logrotate lvm2 mdevctl\n  msr-tools netcat-openbsd nftables ovmf parted polkitd python3-cairo python3-gi-cairo qemu-system-common\n  qemu-system-data qemu-system-gui qemu-system-modules-opengl qemu-system-modules-spice qemu-system-x86 seabios\n  sgml-base swtpm swtpm-tools systemd-container systemd-hwe-hwdb thin-provisioning-tools udev xml-core\nSuggested packages:\n  firewalld kmod alsa-utils libasound2-plugins libdv-bin oss-compat jackd2 libparted-dev libparted-i18n pipewire\n  libraw1394-doc xdg-utils speex gstreamer1.0-libav gstreamer1.0-plugins-ugly\n  libvirt-daemon-driver-storage-gluster libvirt-daemon-driver-storage-iscsi-direct\n  libvirt-daemon-driver-storage-rbd libvirt-daemon-driver-storage-zfs libvirt-daemon-driver-lxc\n  libvirt-daemon-driver-vbox libvirt-daemon-driver-xen numad passt apparmor auditd nfs-common open-iscsi pm-utils\n  systemtap zfsutils bsd-mailx | mailx parted-doc polkitd-pkla samba vde2 sgml-base-doc trousers gir1.2-secret-1\n  gnome-keyring python3-guestfs ssh-askpass debhelper\nThe following NEW packages will be installed:\n  acl alsa-topology-conf alsa-ucm-conf cpu-checker dmeventd dmidecode dns-root-data dnsmasq-base gettext-base\n  gir1.2-atk-1.0 gir1.2-ayatanaappindicator3-0.1 gir1.2-gdkpixbuf-2.0 gir1.2-gstreamer-1.0 gir1.2-gtk-3.0\n  gir1.2-gtk-vnc-2.0 gir1.2-gtksource-4 gir1.2-harfbuzz-0.0 gir1.2-libvirt-glib-1.0 gir1.2-pango-1.0\n  gir1.2-spiceclientglib-2.0 gir1.2-spiceclientgtk-3.0 gir1.2-vte-2.91 gstreamer1.0-plugins-good gstreamer1.0-x\n  iptables ipxe-qemu ipxe-qemu-256k-compat-efi-roms libaa1 libasound2-data libasound2t64 libavc1394-0\n  libayatana-appindicator3-1 libayatana-ido3-0.4-0 libayatana-indicator3-7 libbrlapi0.8 libcaca0\n  libdbusmenu-glib4 libdbusmenu-gtk3-4 libdecor-0-0 libdecor-0-plugin-1-gtk libdevmapper-event1.02.1 libdv4t64\n  libfdt1 libgstreamer-plugins-good1.0-0 libgtksourceview-4-0 libgtksourceview-4-common libgudev-1.0-0\n  libharfbuzz-gobject0 libiec61883-0 libip4tc2 libip6tc2 libjack-jackd2-0 liblvm2cmd2.03 libnetfilter-conntrack3\n  libnfnetlink0 libnftables1 libnftnl11 libnss-mymachines libpangoxft-1.0-0 libparted2t64 libpipewire-0.3-0t64\n  libpipewire-0.3-common libpolkit-agent-1-0 libraw1394-11 libsamplerate0 libsdl2-2.0-0 libshout3 libslang2\n  libslirp0 libspa-0.2-modules libspeex1 libspice-server1 libtag1v5 libtag1v5-vanilla libtpms0 libtwolame0\n  libv4l-0t64 libv4lconvert0t64 libvirglrenderer1 libvirt-daemon libvirt-daemon-config-network\n  libvirt-daemon-config-nwfilter libvirt-daemon-driver-qemu libvirt-daemon-system libvirt-daemon-system-systemd\n  libvpx9 libwavpack1 libwebrtc-audio-processing1 libxft2 libxml2-utils libxss1 libxv1 logrotate lvm2 mdevctl\n  msr-tools netcat-openbsd nftables ovmf parted polkitd python3-cairo python3-gi-cairo qemu-system-common\n  qemu-system-data qemu-system-gui qemu-system-modules-opengl qemu-system-modules-spice qemu-system-x86 seabios\n  sgml-base swtpm swtpm-tools systemd-container systemd-hwe-hwdb thin-provisioning-tools udev virt-manager\n  xml-core\n0 upgraded, 119 newly installed, 0 to remove and 4 not upgraded.\nNeed to get 43.2 MB of archives.\nAfter this operation, 180 MB of additional disk space will be used.\nGet:1 http://archive.ubuntu.com/ubuntu noble/main amd64 sgml-base all 1.31 [11.4 kB]\nGet:2 http://archive.ubuntu.com/ubuntu noble/main amd64 libslang2 amd64 2.3.3-3build2 [506 kB]\nGet:3 http://archive.ubuntu.com/ubuntu noble/main amd64 logrotate amd64 3.21.0-2build1 [52.2 kB]\nGet:4 http://archive.ubuntu.com/ubuntu noble/main amd64 netcat-openbsd amd64 1.226-1ubuntu2 [44.3 kB]\nGet:5 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 udev amd64 255.4-1ubuntu8.8 [1,874 kB]\nGet:6 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 systemd-hwe-hwdb all 255.1.4 [3,200 B]\nGet:7 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dmidecode amd64 3.5-3ubuntu0.1 [73.0 kB]\nGet:8 http://archive.ubuntu.com/ubuntu noble/main amd64 gettext-base amd64 0.21-14ubuntu2 [38.4 kB]\nGet:9 http://archive.ubuntu.com/ubuntu noble/main amd64 libip4tc2 amd64 1.8.10-3ubuntu2 [23.3 kB]\nGet:10 http://archive.ubuntu.com/ubuntu noble/main amd64 libip6tc2 amd64 1.8.10-3ubuntu2 [23.7 kB]\nGet:11 http://archive.ubuntu.com/ubuntu noble/main amd64 libnfnetlink0 amd64 1.0.2-2build1 [14.8 kB]\nGet:12 http://archive.ubuntu.com/ubuntu noble/main amd64 libnetfilter-conntrack3 amd64 1.0.9-6build1 [45.2 kB]\nGet:13 http://archive.ubuntu.com/ubuntu noble/main amd64 libnftnl11 amd64 1.2.6-2build1 [66.0 kB]\nGet:14 http://archive.ubuntu.com/ubuntu noble/main amd64 iptables amd64 1.8.10-3ubuntu2 [381 kB]\nGet:15 http://archive.ubuntu.com/ubuntu noble/main amd64 libnftables1 amd64 1.0.9-1build1 [358 kB]\nGet:16 http://archive.ubuntu.com/ubuntu noble/main amd64 libparted2t64 amd64 3.6-4build1 [152 kB]\nGet:17 http://archive.ubuntu.com/ubuntu noble/main amd64 nftables amd64 1.0.9-1build1 [69.8 kB]\nGet:18 http://archive.ubuntu.com/ubuntu noble/main amd64 parted amd64 3.6-4build1 [43.3 kB]\nGet:19 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 acl amd64 2.3.2-1build1.1 [39.4 kB]\nGet:20 http://archive.ubuntu.com/ubuntu noble/main amd64 alsa-topology-conf all 1.2.5.1-2 [15.5 kB]\nGet:21 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libasound2-data all 1.2.11-1ubuntu0.1 [21.1 kB]\nGet:22 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libasound2t64 amd64 1.2.11-1ubuntu0.1 [399 kB]\nGet:23 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 alsa-ucm-conf all 1.2.10-1ubuntu5.7 [66.4 kB]\nGet:24 http://archive.ubuntu.com/ubuntu noble/main amd64 msr-tools amd64 1.3-5build1 [9,610 B]\nGet:25 http://archive.ubuntu.com/ubuntu noble/main amd64 cpu-checker amd64 0.7-1.3build2 [6,148 B]\nGet:26 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libdevmapper-event1.02.1 amd64 2:1.02.185-3ubuntu3.2 [12.6 kB]\nGet:27 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 liblvm2cmd2.03 amd64 2.03.16-3ubuntu3.2 [797 kB]\nGet:28 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dmeventd amd64 2:1.02.185-3ubuntu3.2 [38.0 kB]\nGet:29 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 dns-root-data all 2024071801~ubuntu0.24.04.1 [5,918 B]\nGet:30 http://archive.ubuntu.com/ubuntu noble/main amd64 dnsmasq-base amd64 2.90-2build2 [375 kB]\nGet:31 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-atk-1.0 amd64 2.52.0-1build1 [23.1 kB]\nGet:32 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-gdkpixbuf-2.0 amd64 2.42.10+dfsg-3ubuntu3.1 [9,486 B]\nGet:33 http://archive.ubuntu.com/ubuntu noble/main amd64 libharfbuzz-gobject0 amd64 8.3.0-2build2 [34.3 kB]\nGet:34 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-harfbuzz-0.0 amd64 8.3.0-2build2 [44.5 kB]\nGet:35 http://archive.ubuntu.com/ubuntu noble/main amd64 libxft2 amd64 2.3.6-1build1 [45.3 kB]\nGet:36 http://archive.ubuntu.com/ubuntu noble/main amd64 libpangoxft-1.0-0 amd64 1.52.1+ds-1build1 [20.3 kB]\nGet:37 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-pango-1.0 amd64 1.52.1+ds-1build1 [34.8 kB]\nGet:38 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-gtk-3.0 amd64 3.24.41-4ubuntu1.3 [245 kB]\nGet:39 http://archive.ubuntu.com/ubuntu noble/main amd64 libayatana-ido3-0.4-0 amd64 0.10.1-1build2 [56.6 kB]\nGet:40 http://archive.ubuntu.com/ubuntu noble/main amd64 libayatana-indicator3-7 amd64 0.9.4-1build1 [31.7 kB]\nGet:41 http://archive.ubuntu.com/ubuntu noble/main amd64 libdbusmenu-glib4 amd64 18.10.20180917~bzr492+repack1-3.1ubuntu5 [43.0 kB]\nGet:42 http://archive.ubuntu.com/ubuntu noble/main amd64 libdbusmenu-gtk3-4 amd64 18.10.20180917~bzr492+repack1-3.1ubuntu5 [27.6 kB]\nGet:43 http://archive.ubuntu.com/ubuntu noble/main amd64 libayatana-appindicator3-1 amd64 0.5.93-1build3 [24.7 kB]\nGet:44 http://archive.ubuntu.com/ubuntu noble/main amd64 gir1.2-ayatanaappindicator3-0.1 amd64 0.5.93-1build3 [5,838 B]\nGet:45 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-gstreamer-1.0 amd64 1.24.2-1ubuntu0.1 [88.4 kB]\nGet:46 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-gtk-vnc-2.0 amd64 1.3.1-1build2 [12.1 kB]\nGet:47 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgtksourceview-4-common all 4.8.4-5build4 [590 kB]\nGet:48 http://archive.ubuntu.com/ubuntu noble/universe amd64 libgtksourceview-4-0 amd64 4.8.4-5build4 [233 kB]\nGet:49 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-gtksource-4 amd64 4.8.4-5build4 [20.3 kB]\nGet:50 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-spiceclientglib-2.0 amd64 0.42-2ubuntu2 [14.4 kB]\nGet:51 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-spiceclientgtk-3.0 amd64 0.42-2ubuntu2 [5,610 B]\nGet:52 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gir1.2-vte-2.91 amd64 0.76.0-1ubuntu0.1 [11.5 kB]\nGet:53 http://archive.ubuntu.com/ubuntu noble/main amd64 libaa1 amd64 1.4p5-51.1 [49.9 kB]\nGet:54 http://archive.ubuntu.com/ubuntu noble/main amd64 libraw1394-11 amd64 2.1.2-2build3 [26.2 kB]\nGet:55 http://archive.ubuntu.com/ubuntu noble/main amd64 libavc1394-0 amd64 0.5.4-5build3 [15.4 kB]\nGet:56 http://archive.ubuntu.com/ubuntu noble/main amd64 libcaca0 amd64 0.99.beta20-4build2 [208 kB]\nGet:57 http://archive.ubuntu.com/ubuntu noble/main amd64 libdv4t64 amd64 1.0.0-17.1build1 [63.2 kB]\nGet:58 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libgstreamer-plugins-good1.0-0 amd64 1.24.2-1ubuntu1.1 [32.9 kB]\nGet:59 http://archive.ubuntu.com/ubuntu noble/main amd64 libgudev-1.0-0 amd64 1:238-5ubuntu1 [15.9 kB]\nGet:60 http://archive.ubuntu.com/ubuntu noble/main amd64 libiec61883-0 amd64 1.2.0-6build1 [24.5 kB]\nGet:61 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libspeex1 amd64 1.2.1-2ubuntu2.24.04.1 [59.6 kB]\nGet:62 http://archive.ubuntu.com/ubuntu noble/main amd64 libshout3 amd64 2.4.6-1build2 [50.3 kB]\nGet:63 http://archive.ubuntu.com/ubuntu noble/main amd64 libtag1v5-vanilla amd64 1.13.1-1build1 [326 kB]\nGet:64 http://archive.ubuntu.com/ubuntu noble/main amd64 libtag1v5 amd64 1.13.1-1build1 [11.7 kB]\nGet:65 http://archive.ubuntu.com/ubuntu noble/main amd64 libtwolame0 amd64 0.4.0-2build3 [52.3 kB]\nGet:66 http://archive.ubuntu.com/ubuntu noble/main amd64 libv4lconvert0t64 amd64 1.26.1-4build3 [87.6 kB]\nGet:67 http://archive.ubuntu.com/ubuntu noble/main amd64 libv4l-0t64 amd64 1.26.1-4build3 [46.9 kB]\nGet:68 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvpx9 amd64 1.14.0-1ubuntu2.2 [1,143 kB]\nGet:69 http://archive.ubuntu.com/ubuntu noble/main amd64 libwavpack1 amd64 5.6.0-1build1 [84.6 kB]\nGet:70 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-plugins-good amd64 1.24.2-1ubuntu1.1 [2,238 kB]\nGet:71 http://archive.ubuntu.com/ubuntu noble/main amd64 libxv1 amd64 2:1.0.11-1.1build1 [10.7 kB]\nGet:72 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 gstreamer1.0-x amd64 1.24.2-1ubuntu0.2 [85.0 kB]\nGet:73 http://archive.ubuntu.com/ubuntu noble/main amd64 ipxe-qemu all 1.21.1+git-20220113.fbbdc3926-0ubuntu2 [1,565 kB]\nGet:74 http://archive.ubuntu.com/ubuntu noble/main amd64 ipxe-qemu-256k-compat-efi-roms all 1.0.0+git-20150424.a25a16d-0ubuntu5 [548 kB]\nGet:75 http://archive.ubuntu.com/ubuntu noble/main amd64 libbrlapi0.8 amd64 6.6-4ubuntu5 [31.4 kB]\nGet:76 http://archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-0 amd64 0.2.2-1build2 [16.5 kB]\nGet:77 http://archive.ubuntu.com/ubuntu noble/main amd64 libdecor-0-plugin-1-gtk amd64 0.2.2-1build2 [22.2 kB]\nGet:78 http://archive.ubuntu.com/ubuntu noble/main amd64 libsamplerate0 amd64 0.2.2-4build1 [1,344 kB]\nGet:79 http://archive.ubuntu.com/ubuntu noble/main amd64 libjack-jackd2-0 amd64 1.9.21~dfsg-3ubuntu3 [289 kB]\nGet:80 http://archive.ubuntu.com/ubuntu noble/main amd64 libwebrtc-audio-processing1 amd64 0.3.1-0ubuntu6 [290 kB]\nGet:81 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libspa-0.2-modules amd64 1.0.5-1ubuntu3 [626 kB]\nGet:82 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpipewire-0.3-0t64 amd64 1.0.5-1ubuntu3 [252 kB]\nGet:83 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpipewire-0.3-common all 1.0.5-1ubuntu3 [18.8 kB]\nGet:84 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libpolkit-agent-1-0 amd64 124-2ubuntu1.24.04.2 [17.4 kB]\nGet:85 http://archive.ubuntu.com/ubuntu noble/main amd64 libxss1 amd64 1:1.2.3-1build3 [7,204 B]\nGet:86 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libsdl2-2.0-0 amd64 2.30.0+dfsg-1ubuntu3.1 [686 kB]\nGet:87 http://archive.ubuntu.com/ubuntu noble/main amd64 libslirp0 amd64 4.7.0-1ubuntu3 [63.8 kB]\nGet:88 http://archive.ubuntu.com/ubuntu noble/main amd64 libspice-server1 amd64 0.15.1-1build2 [349 kB]\nGet:89 http://archive.ubuntu.com/ubuntu noble/main amd64 libtpms0 amd64 0.9.3-0ubuntu4 [373 kB]\nGet:90 http://archive.ubuntu.com/ubuntu noble/main amd64 libvirglrenderer1 amd64 1.0.0-1ubuntu2 [226 kB]\nGet:91 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-driver-qemu amd64 10.0.0-2ubuntu8.7 [740 kB]\nGet:92 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon amd64 10.0.0-2ubuntu8.7 [431 kB]\nGet:93 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-config-network all 10.0.0-2ubuntu8.7 [3,120 B]\nGet:94 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-config-nwfilter all 10.0.0-2ubuntu8.7 [6,042 B]\nGet:95 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 systemd-container amd64 255.4-1ubuntu8.8 [417 kB]\nGet:96 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-system-systemd all 10.0.0-2ubuntu8.7 [1,376 B]\nGet:97 http://archive.ubuntu.com/ubuntu noble/main amd64 xml-core all 0.19 [20.3 kB]\nGet:98 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 polkitd amd64 124-2ubuntu1.24.04.2 [95.2 kB]\nGet:99 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libvirt-daemon-system amd64 10.0.0-2ubuntu8.7 [49.6 kB]\nGet:100 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libxml2-utils amd64 2.9.14+dfsg-1.3ubuntu3.3 [39.4 kB]\nGet:101 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 lvm2 amd64 2.03.16-3ubuntu3.2 [1,186 kB]\nGet:102 http://archive.ubuntu.com/ubuntu noble/main amd64 mdevctl amd64 1.3.0-1ubuntu2 [936 kB]\nGet:103 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-cairo amd64 1.25.1-2build2 [119 kB]\nGet:104 http://archive.ubuntu.com/ubuntu noble/main amd64 python3-gi-cairo amd64 3.48.2-1 [8,132 B]\nGet:105 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-common amd64 1:8.2.2+ds-0ubuntu1.7 [1,253 kB]\nGet:106 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-data all 1:8.2.2+ds-0ubuntu1.7 [1,793 kB]\nGet:107 http://archive.ubuntu.com/ubuntu noble/main amd64 libfdt1 amd64 1.7.0-2build1 [20.1 kB]\nGet:108 http://archive.ubuntu.com/ubuntu noble/main amd64 seabios all 1.16.3-2 [175 kB]\nGet:109 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-x86 amd64 1:8.2.2+ds-0ubuntu1.7 [11.2 MB]\nGet:110 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-modules-opengl amd64 1:8.2.2+ds-0ubuntu1.7 [184 kB]\nGet:111 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-gui amd64 1:8.2.2+ds-0ubuntu1.7 [314 kB]\nGet:112 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 qemu-system-modules-spice amd64 1:8.2.2+ds-0ubuntu1.7 [70.2 kB]\nGet:113 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 swtpm amd64 0.7.3-0ubuntu5.24.04.1 [53.1 kB]\nGet:114 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 swtpm-tools amd64 0.7.3-0ubuntu5.24.04.1 [92.9 kB]\nGet:115 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 thin-provisioning-tools amd64 0.9.0-2ubuntu5.1 [436 kB]\nGet:116 http://archive.ubuntu.com/ubuntu noble/universe amd64 gir1.2-libvirt-glib-1.0 amd64 5.0.0-2build3 [32.6 kB]\nGet:117 http://archive.ubuntu.com/ubuntu noble-updates/universe amd64 virt-manager all 1:4.1.0-3ubuntu0.1 [263 kB]\nGet:118 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 libnss-mymachines amd64 255.4-1ubuntu8.8 [153 kB]\nGet:119 http://archive.ubuntu.com/ubuntu noble-updates/main amd64 ovmf all 2024.02-2ubuntu0.4 [4,571 kB]\nFetched 43.2 MB in 5s (9,539 kB/s)\nExtracting templates from packages: 100%\nPreconfiguring packages ...\nSelecting previously unselected package sgml-base.\n(Reading database ... 30439 files and directories currently installed.)\nPreparing to unpack .../000-sgml-base_1.31_all.deb ...\nUnpacking sgml-base (1.31) ...\nSelecting previously unselected package libslang2:amd64.\nPreparing to unpack .../001-libslang2_2.3.3-3build2_amd64.deb ...\nUnpacking libslang2:amd64 (2.3.3-3build2) ...\nSelecting previously unselected package logrotate.\nPreparing to unpack .../002-logrotate_3.21.0-2build1_amd64.deb ...\nUnpacking logrotate (3.21.0-2build1) ...\nSelecting previously unselected package netcat-openbsd.\nPreparing to unpack .../003-netcat-openbsd_1.226-1ubuntu2_amd64.deb ...\nUnpacking netcat-openbsd (1.226-1ubuntu2) ...\nSelecting previously unselected package udev.\nPreparing to unpack .../004-udev_255.4-1ubuntu8.8_amd64.deb ...\nUnpacking udev (255.4-1ubuntu8.8) ...\nSelecting previously unselected package systemd-hwe-hwdb.\nPreparing to unpack .../005-systemd-hwe-hwdb_255.1.4_all.deb ...\nUnpacking systemd-hwe-hwdb (255.1.4) ...\nSelecting previously unselected package dmidecode.\nPreparing to unpack .../006-dmidecode_3.5-3ubuntu0.1_amd64.deb ...\nUnpacking dmidecode (3.5-3ubuntu0.1) ...\nSelecting previously unselected package gettext-base.\nPreparing to unpack .../007-gettext-base_0.21-14ubuntu2_amd64.deb ...\nUnpacking gettext-base (0.21-14ubuntu2) ...\nSelecting previously unselected package libip4tc2:amd64.\nPreparing to unpack .../008-libip4tc2_1.8.10-3ubuntu2_amd64.deb ...\nUnpacking libip4tc2:amd64 (1.8.10-3ubuntu2) ...\nSelecting previously unselected package libip6tc2:amd64.\nPreparing to unpack .../009-libip6tc2_1.8.10-3ubuntu2_amd64.deb ...\nUnpacking libip6tc2:amd64 (1.8.10-3ubuntu2) ...\nSelecting previously unselected package libnfnetlink0:amd64.\nPreparing to unpack .../010-libnfnetlink0_1.0.2-2build1_amd64.deb ...\nUnpacking libnfnetlink0:amd64 (1.0.2-2build1) ...\nSelecting previously unselected package libnetfilter-conntrack3:amd64.\nPreparing to unpack .../011-libnetfilter-conntrack3_1.0.9-6build1_amd64.deb ...\nUnpacking libnetfilter-conntrack3:amd64 (1.0.9-6build1) ...\nSelecting previously unselected package libnftnl11:amd64.\nPreparing to unpack .../012-libnftnl11_1.2.6-2build1_amd64.deb ...\nUnpacking libnftnl11:amd64 (1.2.6-2build1) ...\nSelecting previously unselected package iptables.\nPreparing to unpack .../013-iptables_1.8.10-3ubuntu2_amd64.deb ...\nUnpacking iptables (1.8.10-3ubuntu2) ...\nSelecting previously unselected package libnftables1:amd64.\nPreparing to unpack .../014-libnftables1_1.0.9-1build1_amd64.deb ...\nUnpacking libnftables1:amd64 (1.0.9-1build1) ...\nSelecting previously unselected package libparted2t64:amd64.\nPreparing to unpack .../015-libparted2t64_3.6-4build1_amd64.deb ...\nAdding 'diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged by\nlibparted2t64'\nAdding 'diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-me\nrged by libparted2t64'\nUnpacking libparted2t64:amd64 (3.6-4build1) ...\nSelecting previously unselected package nftables.\nPreparing to unpack .../016-nftables_1.0.9-1build1_amd64.deb ...\nUnpacking nftables (1.0.9-1build1) ...\nSelecting previously unselected package parted.\nPreparing to unpack .../017-parted_3.6-4build1_amd64.deb ...\nUnpacking parted (3.6-4build1) ...\nSelecting previously unselected package acl.\nPreparing to unpack .../018-acl_2.3.2-1build1.1_amd64.deb ...\nUnpacking acl (2.3.2-1build1.1) ...\nSelecting previously unselected package alsa-topology-conf.\nPreparing to unpack .../019-alsa-topology-conf_1.2.5.1-2_all.deb ...\nUnpacking alsa-topology-conf (1.2.5.1-2) ...\nSelecting previously unselected package libasound2-data.\nPreparing to unpack .../020-libasound2-data_1.2.11-1ubuntu0.1_all.deb ...\nUnpacking libasound2-data (1.2.11-1ubuntu0.1) ...\nSelecting previously unselected package libasound2t64:amd64.\nPreparing to unpack .../021-libasound2t64_1.2.11-1ubuntu0.1_amd64.deb ...\nUnpacking libasound2t64:amd64 (1.2.11-1ubuntu0.1) ...\nSelecting previously unselected package alsa-ucm-conf.\nPreparing to unpack .../022-alsa-ucm-conf_1.2.10-1ubuntu5.7_all.deb ...\nUnpacking alsa-ucm-conf (1.2.10-1ubuntu5.7) ...\nSelecting previously unselected package msr-tools.\nPreparing to unpack .../023-msr-tools_1.3-5build1_amd64.deb ...\nUnpacking msr-tools (1.3-5build1) ...\nSelecting previously unselected package cpu-checker.\nPreparing to unpack .../024-cpu-checker_0.7-1.3build2_amd64.deb ...\nUnpacking cpu-checker (0.7-1.3build2) ...\nSelecting previously unselected package libdevmapper-event1.02.1:amd64.\nPreparing to unpack .../025-libdevmapper-event1.02.1_2%3a1.02.185-3ubuntu3.2_amd64.deb ...\nUnpacking libdevmapper-event1.02.1:amd64 (2:1.02.185-3ubuntu3.2) ...\nSelecting previously unselected package liblvm2cmd2.03:amd64.\nPreparing to unpack .../026-liblvm2cmd2.03_2.03.16-3ubuntu3.2_amd64.deb ...\nUnpacking liblvm2cmd2.03:amd64 (2.03.16-3ubuntu3.2) ...\nSelecting previously unselected package dmeventd.\nPreparing to unpack .../027-dmeventd_2%3a1.02.185-3ubuntu3.2_amd64.deb ...\nUnpacking dmeventd (2:1.02.185-3ubuntu3.2) ...\nSelecting previously unselected package dns-root-data.\nPreparing to unpack .../028-dns-root-data_2024071801~ubuntu0.24.04.1_all.deb ...\nUnpacking dns-root-data (2024071801~ubuntu0.24.04.1) ...\nSelecting previously unselected package dnsmasq-base.\nPreparing to unpack .../029-dnsmasq-base_2.90-2build2_amd64.deb ...\nUnpacking dnsmasq-base (2.90-2build2) ...\nSelecting previously unselected package gir1.2-atk-1.0:amd64.\nPreparing to unpack .../030-gir1.2-atk-1.0_2.52.0-1build1_amd64.deb ...\nUnpacking gir1.2-atk-1.0:amd64 (2.52.0-1build1) ...\nSelecting previously unselected package gir1.2-gdkpixbuf-2.0:amd64.\nPreparing to unpack .../031-gir1.2-gdkpixbuf-2.0_2.42.10+dfsg-3ubuntu3.1_amd64.deb ...\nUnpacking gir1.2-gdkpixbuf-2.0:amd64 (2.42.10+dfsg-3ubuntu3.1) ...\nSelecting previously unselected package libharfbuzz-gobject0:amd64.\nPreparing to unpack .../032-libharfbuzz-gobject0_8.3.0-2build2_amd64.deb ...\nUnpacking libharfbuzz-gobject0:amd64 (8.3.0-2build2) ...\nSelecting previously unselected package gir1.2-harfbuzz-0.0:amd64.\nPreparing to unpack .../033-gir1.2-harfbuzz-0.0_8.3.0-2build2_amd64.deb ...\nUnpacking gir1.2-harfbuzz-0.0:amd64 (8.3.0-2build2) ...\nSelecting previously unselected package libxft2:amd64.\nPreparing to unpack .../034-libxft2_2.3.6-1build1_amd64.deb ...\nUnpacking libxft2:amd64 (2.3.6-1build1) ...\nSelecting previously unselected package libpangoxft-1.0-0:amd64.\nPreparing to unpack .../035-libpangoxft-1.0-0_1.52.1+ds-1build1_amd64.deb ...\nUnpacking libpangoxft-1.0-0:amd64 (1.52.1+ds-1build1) ...\nSelecting previously unselected package gir1.2-pango-1.0:amd64.\nPreparing to unpack .../036-gir1.2-pango-1.0_1.52.1+ds-1build1_amd64.deb ...\nUnpacking gir1.2-pango-1.0:amd64 (1.52.1+ds-1build1) ...\nSelecting previously unselected package gir1.2-gtk-3.0:amd64.\nPreparing to unpack .../037-gir1.2-gtk-3.0_3.24.41-4ubuntu1.3_amd64.deb ...\nUnpacking gir1.2-gtk-3.0:amd64 (3.24.41-4ubuntu1.3) ...\nSelecting previously unselected package libayatana-ido3-0.4-0:amd64.\nPreparing to unpack .../038-libayatana-ido3-0.4-0_0.10.1-1build2_amd64.deb ...\nUnpacking libayatana-ido3-0.4-0:amd64 (0.10.1-1build2) ...\nSelecting previously unselected package libayatana-indicator3-7:amd64.\nPreparing to unpack .../039-libayatana-indicator3-7_0.9.4-1build1_amd64.deb ...\nUnpacking libayatana-indicator3-7:amd64 (0.9.4-1build1) ...\nSelecting previously unselected package libdbusmenu-glib4:amd64.\nPreparing to unpack .../040-libdbusmenu-glib4_18.10.20180917~bzr492+repack1-3.1ubuntu5_amd64.deb ...\nUnpacking libdbusmenu-glib4:amd64 (18.10.20180917~bzr492+repack1-3.1ubuntu5) ...\nSelecting previously unselected package libdbusmenu-gtk3-4:amd64.\nPreparing to unpack .../041-libdbusmenu-gtk3-4_18.10.20180917~bzr492+repack1-3.1ubuntu5_amd64.deb ...\nUnpacking libdbusmenu-gtk3-4:amd64 (18.10.20180917~bzr492+repack1-3.1ubuntu5) ...\nSelecting previously unselected package libayatana-appindicator3-1.\nPreparing to unpack .../042-libayatana-appindicator3-1_0.5.93-1build3_amd64.deb ...\nUnpacking libayatana-appindicator3-1 (0.5.93-1build3) ...\nSelecting previously unselected package gir1.2-ayatanaappindicator3-0.1.\nPreparing to unpack .../043-gir1.2-ayatanaappindicator3-0.1_0.5.93-1build3_amd64.deb ...\nUnpacking gir1.2-ayatanaappindicator3-0.1 (0.5.93-1build3) ...\nSelecting previously unselected package gir1.2-gstreamer-1.0:amd64.\nPreparing to unpack .../044-gir1.2-gstreamer-1.0_1.24.2-1ubuntu0.1_amd64.deb ...\nUnpacking gir1.2-gstreamer-1.0:amd64 (1.24.2-1ubuntu0.1) ...\nSelecting previously unselected package gir1.2-gtk-vnc-2.0:amd64.\nPreparing to unpack .../045-gir1.2-gtk-vnc-2.0_1.3.1-1build2_amd64.deb ...\nUnpacking gir1.2-gtk-vnc-2.0:amd64 (1.3.1-1build2) ...\nSelecting previously unselected package libgtksourceview-4-common.\nPreparing to unpack .../046-libgtksourceview-4-common_4.8.4-5build4_all.deb ...\nUnpacking libgtksourceview-4-common (4.8.4-5build4) ...\nSelecting previously unselected package libgtksourceview-4-0:amd64.\nPreparing to unpack .../047-libgtksourceview-4-0_4.8.4-5build4_amd64.deb ...\nUnpacking libgtksourceview-4-0:amd64 (4.8.4-5build4) ...\nSelecting previously unselected package gir1.2-gtksource-4:amd64.\nPreparing to unpack .../048-gir1.2-gtksource-4_4.8.4-5build4_amd64.deb ...\nUnpacking gir1.2-gtksource-4:amd64 (4.8.4-5build4) ...\nSelecting previously unselected package gir1.2-spiceclientglib-2.0:amd64.\nPreparing to unpack .../049-gir1.2-spiceclientglib-2.0_0.42-2ubuntu2_amd64.deb ...\nUnpacking gir1.2-spiceclientglib-2.0:amd64 (0.42-2ubuntu2) ...\nSelecting previously unselected package gir1.2-spiceclientgtk-3.0:amd64.\nPreparing to unpack .../050-gir1.2-spiceclientgtk-3.0_0.42-2ubuntu2_amd64.deb ...\nUnpacking gir1.2-spiceclientgtk-3.0:amd64 (0.42-2ubuntu2) ...\nSelecting previously unselected package gir1.2-vte-2.91:amd64.\nPreparing to unpack .../051-gir1.2-vte-2.91_0.76.0-1ubuntu0.1_amd64.deb ...\nUnpacking gir1.2-vte-2.91:amd64 (0.76.0-1ubuntu0.1) ...\nSelecting previously unselected package libaa1:amd64.\nPreparing to unpack .../052-libaa1_1.4p5-51.1_amd64.deb ...\nUnpacking libaa1:amd64 (1.4p5-51.1) ...\nSelecting previously unselected package libraw1394-11:amd64.\nPreparing to unpack .../053-libraw1394-11_2.1.2-2build3_amd64.deb ...\nUnpacking libraw1394-11:amd64 (2.1.2-2build3) ...\nSelecting previously unselected package libavc1394-0:amd64.\nPreparing to unpack .../054-libavc1394-0_0.5.4-5build3_amd64.deb ...\nUnpacking libavc1394-0:amd64 (0.5.4-5build3) ...\nSelecting previously unselected package libcaca0:amd64.\nPreparing to unpack .../055-libcaca0_0.99.beta20-4build2_amd64.deb ...\nUnpacking libcaca0:amd64 (0.99.beta20-4build2) ...\nSelecting previously unselected package libdv4t64:amd64.\nPreparing to unpack .../056-libdv4t64_1.0.0-17.1build1_amd64.deb ...\nUnpacking libdv4t64:amd64 (1.0.0-17.1build1) ...\nSelecting previously unselected package libgstreamer-plugins-good1.0-0:amd64.\nPreparing to unpack .../057-libgstreamer-plugins-good1.0-0_1.24.2-1ubuntu1.1_amd64.deb ...\nUnpacking libgstreamer-plugins-good1.0-0:amd64 (1.24.2-1ubuntu1.1) ...\nSelecting previously unselected package libgudev-1.0-0:amd64.\nPreparing to unpack .../058-libgudev-1.0-0_1%3a238-5ubuntu1_amd64.deb ...\nUnpacking libgudev-1.0-0:amd64 (1:238-5ubuntu1) ...\nSelecting previously unselected package libiec61883-0:amd64.\nPreparing to unpack .../059-libiec61883-0_1.2.0-6build1_amd64.deb ...\nUnpacking libiec61883-0:amd64 (1.2.0-6build1) ...\nSelecting previously unselected package libspeex1:amd64.\nPreparing to unpack .../060-libspeex1_1.2.1-2ubuntu2.24.04.1_amd64.deb ...\nUnpacking libspeex1:amd64 (1.2.1-2ubuntu2.24.04.1) ...\nSelecting previously unselected package libshout3:amd64.\nPreparing to unpack .../061-libshout3_2.4.6-1build2_amd64.deb ...\nUnpacking libshout3:amd64 (2.4.6-1build2) ...\nSelecting previously unselected package libtag1v5-vanilla:amd64.\nPreparing to unpack .../062-libtag1v5-vanilla_1.13.1-1build1_amd64.deb ...\nUnpacking libtag1v5-vanilla:amd64 (1.13.1-1build1) ...\nSelecting previously unselected package libtag1v5:amd64.\nPreparing to unpack .../063-libtag1v5_1.13.1-1build1_amd64.deb ...\nUnpacking libtag1v5:amd64 (1.13.1-1build1) ...\nSelecting previously unselected package libtwolame0:amd64.\nPreparing to unpack .../064-libtwolame0_0.4.0-2build3_amd64.deb ...\nUnpacking libtwolame0:amd64 (0.4.0-2build3) ...\nSelecting previously unselected package libv4lconvert0t64:amd64.\nPreparing to unpack .../065-libv4lconvert0t64_1.26.1-4build3_amd64.deb ...\nUnpacking libv4lconvert0t64:amd64 (1.26.1-4build3) ...\nSelecting previously unselected package libv4l-0t64:amd64.\nPreparing to unpack .../066-libv4l-0t64_1.26.1-4build3_amd64.deb ...\nUnpacking libv4l-0t64:amd64 (1.26.1-4build3) ...\nSelecting previously unselected package libvpx9:amd64.\nPreparing to unpack .../067-libvpx9_1.14.0-1ubuntu2.2_amd64.deb ...\nUnpacking libvpx9:amd64 (1.14.0-1ubuntu2.2) ...\nSelecting previously unselected package libwavpack1:amd64.\nPreparing to unpack .../068-libwavpack1_5.6.0-1build1_amd64.deb ...\nUnpacking libwavpack1:amd64 (5.6.0-1build1) ...\nSelecting previously unselected package gstreamer1.0-plugins-good:amd64.\nPreparing to unpack .../069-gstreamer1.0-plugins-good_1.24.2-1ubuntu1.1_amd64.deb ...\nUnpacking gstreamer1.0-plugins-good:amd64 (1.24.2-1ubuntu1.1) ...\nSelecting previously unselected package libxv1:amd64.\nPreparing to unpack .../070-libxv1_2%3a1.0.11-1.1build1_amd64.deb ...\nUnpacking libxv1:amd64 (2:1.0.11-1.1build1) ...\nSelecting previously unselected package gstreamer1.0-x:amd64.\nPreparing to unpack .../071-gstreamer1.0-x_1.24.2-1ubuntu0.2_amd64.deb ...\nUnpacking gstreamer1.0-x:amd64 (1.24.2-1ubuntu0.2) ...\nSelecting previously unselected package ipxe-qemu.\nPreparing to unpack .../072-ipxe-qemu_1.21.1+git-20220113.fbbdc3926-0ubuntu2_all.deb ...\nUnpacking ipxe-qemu (1.21.1+git-20220113.fbbdc3926-0ubuntu2) ...\nSelecting previously unselected package ipxe-qemu-256k-compat-efi-roms.\nPreparing to unpack .../073-ipxe-qemu-256k-compat-efi-roms_1.0.0+git-20150424.a25a16d-0ubuntu5_all.deb ...\nUnpacking ipxe-qemu-256k-compat-efi-roms (1.0.0+git-20150424.a25a16d-0ubuntu5) ...\nSelecting previously unselected package libbrlapi0.8:amd64.\nPreparing to unpack .../074-libbrlapi0.8_6.6-4ubuntu5_amd64.deb ...\nUnpacking libbrlapi0.8:amd64 (6.6-4ubuntu5) ...\nSelecting previously unselected package libdecor-0-0:amd64.\nPreparing to unpack .../075-libdecor-0-0_0.2.2-1build2_amd64.deb ...\nUnpacking libdecor-0-0:amd64 (0.2.2-1build2) ...\nSelecting previously unselected package libdecor-0-plugin-1-gtk:amd64.\nPreparing to unpack .../076-libdecor-0-plugin-1-gtk_0.2.2-1build2_amd64.deb ...\nUnpacking libdecor-0-plugin-1-gtk:amd64 (0.2.2-1build2) ...\nSelecting previously unselected package libsamplerate0:amd64.\nPreparing to unpack .../077-libsamplerate0_0.2.2-4build1_amd64.deb ...\nUnpacking libsamplerate0:amd64 (0.2.2-4build1) ...\nSelecting previously unselected package libjack-jackd2-0:amd64.\nPreparing to unpack .../078-libjack-jackd2-0_1.9.21~dfsg-3ubuntu3_amd64.deb ...\nUnpacking libjack-jackd2-0:amd64 (1.9.21~dfsg-3ubuntu3) ...\nSelecting previously unselected package libwebrtc-audio-processing1:amd64.\nPreparing to unpack .../079-libwebrtc-audio-processing1_0.3.1-0ubuntu6_amd64.deb ...\nUnpacking libwebrtc-audio-processing1:amd64 (0.3.1-0ubuntu6) ...\nSelecting previously unselected package libspa-0.2-modules:amd64.\nPreparing to unpack .../080-libspa-0.2-modules_1.0.5-1ubuntu3_amd64.deb ...\nUnpacking libspa-0.2-modules:amd64 (1.0.5-1ubuntu3) ...\nSelecting previously unselected package libpipewire-0.3-0t64:amd64.\nPreparing to unpack .../081-libpipewire-0.3-0t64_1.0.5-1ubuntu3_amd64.deb ...\nUnpacking libpipewire-0.3-0t64:amd64 (1.0.5-1ubuntu3) ...\nSelecting previously unselected package libpipewire-0.3-common.\nPreparing to unpack .../082-libpipewire-0.3-common_1.0.5-1ubuntu3_all.deb ...\nUnpacking libpipewire-0.3-common (1.0.5-1ubuntu3) ...\nSelecting previously unselected package libpolkit-agent-1-0:amd64.\nPreparing to unpack .../083-libpolkit-agent-1-0_124-2ubuntu1.24.04.2_amd64.deb ...\nUnpacking libpolkit-agent-1-0:amd64 (124-2ubuntu1.24.04.2) ...\nSelecting previously unselected package libxss1:amd64.\nPreparing to unpack .../084-libxss1_1%3a1.2.3-1build3_amd64.deb ...\nUnpacking libxss1:amd64 (1:1.2.3-1build3) ...\nSelecting previously unselected package libsdl2-2.0-0:amd64.\nPreparing to unpack .../085-libsdl2-2.0-0_2.30.0+dfsg-1ubuntu3.1_amd64.deb ...\nUnpacking libsdl2-2.0-0:amd64 (2.30.0+dfsg-1ubuntu3.1) ...\nSelecting previously unselected package libslirp0:amd64.\nPreparing to unpack .../086-libslirp0_4.7.0-1ubuntu3_amd64.deb ...\nUnpacking libslirp0:amd64 (4.7.0-1ubuntu3) ...\nSelecting previously unselected package libspice-server1:amd64.\nPreparing to unpack .../087-libspice-server1_0.15.1-1build2_amd64.deb ...\nUnpacking libspice-server1:amd64 (0.15.1-1build2) ...\nSelecting previously unselected package libtpms0:amd64.\nPreparing to unpack .../088-libtpms0_0.9.3-0ubuntu4_amd64.deb ...\nUnpacking libtpms0:amd64 (0.9.3-0ubuntu4) ...\nSelecting previously unselected package libvirglrenderer1:amd64.\nPreparing to unpack .../089-libvirglrenderer1_1.0.0-1ubuntu2_amd64.deb ...\nUnpacking libvirglrenderer1:amd64 (1.0.0-1ubuntu2) ...\nSelecting previously unselected package libvirt-daemon-driver-qemu.\nPreparing to unpack .../090-libvirt-daemon-driver-qemu_10.0.0-2ubuntu8.7_amd64.deb ...\nUnpacking libvirt-daemon-driver-qemu (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libvirt-daemon.\nPreparing to unpack .../091-libvirt-daemon_10.0.0-2ubuntu8.7_amd64.deb ...\nUnpacking libvirt-daemon (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libvirt-daemon-config-network.\nPreparing to unpack .../092-libvirt-daemon-config-network_10.0.0-2ubuntu8.7_all.deb ...\nUnpacking libvirt-daemon-config-network (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libvirt-daemon-config-nwfilter.\nPreparing to unpack .../093-libvirt-daemon-config-nwfilter_10.0.0-2ubuntu8.7_all.deb ...\nUnpacking libvirt-daemon-config-nwfilter (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package systemd-container.\nPreparing to unpack .../094-systemd-container_255.4-1ubuntu8.8_amd64.deb ...\nUnpacking systemd-container (255.4-1ubuntu8.8) ...\nSelecting previously unselected package libvirt-daemon-system-systemd.\nPreparing to unpack .../095-libvirt-daemon-system-systemd_10.0.0-2ubuntu8.7_all.deb ...\nUnpacking libvirt-daemon-system-systemd (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package xml-core.\nPreparing to unpack .../096-xml-core_0.19_all.deb ...\nUnpacking xml-core (0.19) ...\nSelecting previously unselected package polkitd.\nPreparing to unpack .../097-polkitd_124-2ubuntu1.24.04.2_amd64.deb ...\nUnpacking polkitd (124-2ubuntu1.24.04.2) ...\nSelecting previously unselected package libvirt-daemon-system.\nPreparing to unpack .../098-libvirt-daemon-system_10.0.0-2ubuntu8.7_amd64.deb ...\nUnpacking libvirt-daemon-system (10.0.0-2ubuntu8.7) ...\nSelecting previously unselected package libxml2-utils.\nPreparing to unpack .../099-libxml2-utils_2.9.14+dfsg-1.3ubuntu3.3_amd64.deb ...\nUnpacking libxml2-utils (2.9.14+dfsg-1.3ubuntu3.3) ...\nSelecting previously unselected package lvm2.\nPreparing to unpack .../100-lvm2_2.03.16-3ubuntu3.2_amd64.deb ...\nUnpacking lvm2 (2.03.16-3ubuntu3.2) ...\nSelecting previously unselected package mdevctl.\nPreparing to unpack .../101-mdevctl_1.3.0-1ubuntu2_amd64.deb ...\nUnpacking mdevctl (1.3.0-1ubuntu2) ...\nSelecting previously unselected package python3-cairo.\nPreparing to unpack .../102-python3-cairo_1.25.1-2build2_amd64.deb ...\nUnpacking python3-cairo (1.25.1-2build2) ...\nSelecting previously unselected package python3-gi-cairo.\nPreparing to unpack .../103-python3-gi-cairo_3.48.2-1_amd64.deb ...\nUnpacking python3-gi-cairo (3.48.2-1) ...\nSelecting previously unselected package qemu-system-common.\nPreparing to unpack .../104-qemu-system-common_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-system-common (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package qemu-system-data.\nPreparing to unpack .../105-qemu-system-data_1%3a8.2.2+ds-0ubuntu1.7_all.deb ...\nUnpacking qemu-system-data (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package libfdt1:amd64.\nPreparing to unpack .../106-libfdt1_1.7.0-2build1_amd64.deb ...\nUnpacking libfdt1:amd64 (1.7.0-2build1) ...\nSelecting previously unselected package seabios.\nPreparing to unpack .../107-seabios_1.16.3-2_all.deb ...\nUnpacking seabios (1.16.3-2) ...\nSelecting previously unselected package qemu-system-x86.\nPreparing to unpack .../108-qemu-system-x86_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-system-x86 (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package qemu-system-modules-opengl.\nPreparing to unpack .../109-qemu-system-modules-opengl_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-system-modules-opengl (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package qemu-system-gui.\nPreparing to unpack .../110-qemu-system-gui_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-system-gui (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package qemu-system-modules-spice.\nPreparing to unpack .../111-qemu-system-modules-spice_1%3a8.2.2+ds-0ubuntu1.7_amd64.deb ...\nUnpacking qemu-system-modules-spice (1:8.2.2+ds-0ubuntu1.7) ...\nSelecting previously unselected package swtpm.\nPreparing to unpack .../112-swtpm_0.7.3-0ubuntu5.24.04.1_amd64.deb ...\nUnpacking swtpm (0.7.3-0ubuntu5.24.04.1) ...\nSelecting previously unselected package swtpm-tools.\nPreparing to unpack .../113-swtpm-tools_0.7.3-0ubuntu5.24.04.1_amd64.deb ...\nUnpacking swtpm-tools (0.7.3-0ubuntu5.24.04.1) ...\nSelecting previously unselected package thin-provisioning-tools.\nPreparing to unpack .../114-thin-provisioning-tools_0.9.0-2ubuntu5.1_amd64.deb ...\nUnpacking thin-provisioning-tools (0.9.0-2ubuntu5.1) ...\nSelecting previously unselected package gir1.2-libvirt-glib-1.0:amd64.\nPreparing to unpack .../115-gir1.2-libvirt-glib-1.0_5.0.0-2build3_amd64.deb ...\nUnpacking gir1.2-libvirt-glib-1.0:amd64 (5.0.0-2build3) ...\nSelecting previously unselected package virt-manager.\nPreparing to unpack .../116-virt-manager_1%3a4.1.0-3ubuntu0.1_all.deb ...\nUnpacking virt-manager (1:4.1.0-3ubuntu0.1) ...\nSelecting previously unselected package libnss-mymachines:amd64.\nPreparing to unpack .../117-libnss-mymachines_255.4-1ubuntu8.8_amd64.deb ...\nUnpacking libnss-mymachines:amd64 (255.4-1ubuntu8.8) ...\nSelecting previously unselected package ovmf.\nPreparing to unpack .../118-ovmf_2024.02-2ubuntu0.4_all.deb ...\nUnpacking ovmf (2024.02-2ubuntu0.4) ...\nSetting up libip4tc2:amd64 (1.8.10-3ubuntu2) ...\nSetting up libpipewire-0.3-common (1.0.5-1ubuntu3) ...\nSetting up logrotate (3.21.0-2build1) ...\nCreated symlink /etc/systemd/system/timers.target.wants/logrotate.timer → /usr/lib/systemd/system/logrotate.timer.\nSetting up libvirt-daemon-config-network (10.0.0-2ubuntu8.7) ...\nSetting up gir1.2-gstreamer-1.0:amd64 (1.24.2-1ubuntu0.1) ...\nSetting up libraw1394-11:amd64 (2.1.2-2build3) ...\nSetting up libxft2:amd64 (2.3.6-1build1) ...\nSetting up libtag1v5-vanilla:amd64 (1.13.1-1build1) ...\nSetting up python3-cairo (1.25.1-2build2) ...\nSetting up libspeex1:amd64 (1.2.1-2ubuntu2.24.04.1) ...\nSetting up libdevmapper-event1.02.1:amd64 (2:1.02.185-3ubuntu3.2) ...\nSetting up libv4lconvert0t64:amd64 (1.26.1-4build3) ...\nSetting up libpangoxft-1.0-0:amd64 (1.52.1+ds-1build1) ...\nSetting up libtwolame0:amd64 (0.4.0-2build3) ...\nSetting up gir1.2-gdkpixbuf-2.0:amd64 (2.42.10+dfsg-3ubuntu3.1) ...\nSetting up gir1.2-spiceclientglib-2.0:amd64 (0.42-2ubuntu2) ...\nSetting up gir1.2-atk-1.0:amd64 (2.52.0-1build1) ...\nSetting up libip6tc2:amd64 (1.8.10-3ubuntu2) ...\nSetting up libdbusmenu-glib4:amd64 (18.10.20180917~bzr492+repack1-3.1ubuntu5) ...\nSetting up libspice-server1:amd64 (0.15.1-1build2) ...\nSetting up netcat-openbsd (1.226-1ubuntu2) ...\nupdate-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode\nSetting up gir1.2-libvirt-glib-1.0:amd64 (5.0.0-2build3) ...\nSetting up msr-tools (1.3-5build1) ...\nSetting up libwebrtc-audio-processing1:amd64 (0.3.1-0ubuntu6) ...\nSetting up gettext-base (0.21-14ubuntu2) ...\nSetting up libnftnl11:amd64 (1.2.6-2build1) ...\nSetting up libharfbuzz-gobject0:amd64 (8.3.0-2build2) ...\nSetting up libfdt1:amd64 (1.7.0-2build1) ...\nSetting up libayatana-ido3-0.4-0:amd64 (0.10.1-1build2) ...\nSetting up gir1.2-harfbuzz-0.0:amd64 (8.3.0-2build2) ...\nSetting up acl (2.3.2-1build1.1) ...\nSetting up ovmf (2024.02-2ubuntu0.4) ...\nSetting up dns-root-data (2024071801~ubuntu0.24.04.1) ...\nSetting up libasound2-data (1.2.11-1ubuntu0.1) ...\nSetting up gir1.2-pango-1.0:amd64 (1.52.1+ds-1build1) ...\nSetting up libgstreamer-plugins-good1.0-0:amd64 (1.24.2-1ubuntu1.1) ...\nSetting up libasound2t64:amd64 (1.2.11-1ubuntu0.1) ...\nSetting up libslang2:amd64 (2.3.3-3build2) ...\nSetting up libvirglrenderer1:amd64 (1.0.0-1ubuntu2) ...\nSetting up libspa-0.2-modules:amd64 (1.0.5-1ubuntu3) ...\nSetting up libxv1:amd64 (2:1.0.11-1.1build1) ...\nSetting up libshout3:amd64 (2.4.6-1build2) ...\nSetting up thin-provisioning-tools (0.9.0-2ubuntu5.1) ...\nSetting up udev (255.4-1ubuntu8.8) ...\nCreating group 'input' with GID 995.\nCreating group 'sgx' with GID 994.\nCreating group 'kvm' with GID 993.\nCreating group 'render' with GID 992.\nfchownat() of /dev/snd/seq failed: Operation not permitted\nfchownat() of /dev/snd/timer failed: Operation not permitted\nfchownat() of /dev/loop-control failed: Operation not permitted\nfchmod() of /dev/kvm failed: Operation not permitted\nfchmod() of /dev/vhost-net failed: Operation not permitted\nfchmod() of /dev/vhost-vsock failed: Operation not permitted\nSetting up libvirt-daemon-driver-qemu (10.0.0-2ubuntu8.7) ...\nSetting up libdv4t64:amd64 (1.0.0-17.1build1) ...\nSetting up qemu-system-data (1:8.2.2+ds-0ubuntu1.7) ...\nSetting up seabios (1.16.3-2) ...\nSetting up systemd-hwe-hwdb (255.1.4) ...\nSetting up libv4l-0t64:amd64 (1.26.1-4build3) ...\nSetting up systemd-container (255.4-1ubuntu8.8) ...\nCreated symlink /etc/systemd/system/multi-user.target.wants/machines.target → /usr/lib/systemd/system/machines.targ\net.\nSetting up libvpx9:amd64 (1.14.0-1ubuntu2.2) ...\nSetting up libslirp0:amd64 (4.7.0-1ubuntu3) ...\nSetting up alsa-topology-conf (1.2.5.1-2) ...\nSetting up libtag1v5:amd64 (1.13.1-1build1) ...\nSetting up cpu-checker (0.7-1.3build2) ...\nSetting up libwavpack1:amd64 (5.6.0-1build1) ...\nSetting up libnfnetlink0:amd64 (1.0.2-2build1) ...\nSetting up ipxe-qemu (1.21.1+git-20220113.fbbdc3926-0ubuntu2) ...\nSetting up libdecor-0-0:amd64 (0.2.2-1build2) ...\nSetting up libpolkit-agent-1-0:amd64 (124-2ubuntu1.24.04.2) ...\nSetting up ipxe-qemu-256k-compat-efi-roms (1.0.0+git-20150424.a25a16d-0ubuntu5) ...\nSetting up sgml-base (1.31) ...\nSetting up libbrlapi0.8:amd64 (6.6-4ubuntu5) ...\nSetting up libxss1:amd64 (1:1.2.3-1build3) ...\nSetting up libtpms0:amd64 (0.9.3-0ubuntu4) ...\nSetting up dmidecode (3.5-3ubuntu0.1) ...\nSetting up libxml2-utils (2.9.14+dfsg-1.3ubuntu3.3) ...\nSetting up libvirt-daemon-config-nwfilter (10.0.0-2ubuntu8.7) ...\nSetting up libsamplerate0:amd64 (0.2.2-4build1) ...\nSetting up libayatana-indicator3-7:amd64 (0.9.4-1build1) ...\nSetting up python3-gi-cairo (3.48.2-1) ...\nSetting up libgtksourceview-4-common (4.8.4-5build4) ...\nSetting up libpipewire-0.3-0t64:amd64 (1.0.5-1ubuntu3) ...\nSetting up libdecor-0-plugin-1-gtk:amd64 (0.2.2-1build2) ...\nSetting up libgudev-1.0-0:amd64 (1:238-5ubuntu1) ...\nSetting up libaa1:amd64 (1.4p5-51.1) ...\nSetting up libiec61883-0:amd64 (1.2.0-6build1) ...\nSetting up mdevctl (1.3.0-1ubuntu2) ...\nSetting up libavc1394-0:amd64 (0.5.4-5build3) ...\nSetting up libdbusmenu-gtk3-4:amd64 (18.10.20180917~bzr492+repack1-3.1ubuntu5) ...\nSetting up libnftables1:amd64 (1.0.9-1build1) ...\nSetting up gstreamer1.0-x:amd64 (1.24.2-1ubuntu0.2) ...\nSetting up nftables (1.0.9-1build1) ...\nSetting up qemu-system-common (1:8.2.2+ds-0ubuntu1.7) ...\nCreated symlink /etc/systemd/system/multi-user.target.wants/qemu-kvm.service → /usr/lib/systemd/system/qemu-kvm.ser\nvice.\nSetting up libcaca0:amd64 (0.99.beta20-4build2) ...\nSetting up alsa-ucm-conf (1.2.10-1ubuntu5.7) ...\nSetting up gstreamer1.0-plugins-good:amd64 (1.24.2-1ubuntu1.1) ...\nSetting up qemu-system-x86 (1:8.2.2+ds-0ubuntu1.7) ...\nSetting up gir1.2-gtk-3.0:amd64 (3.24.41-4ubuntu1.3) ...\nSetting up libparted2t64:amd64 (3.6-4build1) ...\nRemoving 'diversion of /lib/x86_64-linux-gnu/libparted.so.2 to /lib/x86_64-linux-gnu/libparted.so.2.usr-is-merged b\ny libparted2t64'\nRemoving 'diversion of /lib/x86_64-linux-gnu/libparted.so.2.0.5 to /lib/x86_64-linux-gnu/libparted.so.2.0.5.usr-is-\nmerged by libparted2t64'\nSetting up libgtksourceview-4-0:amd64 (4.8.4-5build4) ...\nSetting up libnss-mymachines:amd64 (255.4-1ubuntu8.8) ...\nSetting up libayatana-appindicator3-1 (0.5.93-1build3) ...\nSetting up swtpm (0.7.3-0ubuntu5.24.04.1) ...\nSetting up gir1.2-gtk-vnc-2.0:amd64 (1.3.1-1build2) ...\nSetting up libvirt-daemon-system-systemd (10.0.0-2ubuntu8.7) ...\nSetting up gir1.2-spiceclientgtk-3.0:amd64 (0.42-2ubuntu2) ...\nSetting up libjack-jackd2-0:amd64 (1.9.21~dfsg-3ubuntu3) ...\nSetting up libnetfilter-conntrack3:amd64 (1.0.9-6build1) ...\nSetting up xml-core (0.19) ...\nSetting up gir1.2-vte-2.91:amd64 (0.76.0-1ubuntu0.1) ...\nSetting up libvirt-daemon (10.0.0-2ubuntu8.7) ...\nSetting up libsdl2-2.0-0:amd64 (2.30.0+dfsg-1ubuntu3.1) ...\nSetting up gir1.2-ayatanaappindicator3-0.1 (0.5.93-1build3) ...\nSetting up gir1.2-gtksource-4:amd64 (4.8.4-5build4) ...\nSetting up qemu-system-modules-opengl (1:8.2.2+ds-0ubuntu1.7) ...\nSetting up iptables (1.8.10-3ubuntu2) ...\nupdate-alternatives: using /usr/sbin/iptables-legacy to provide /usr/sbin/iptables (iptables) in auto mode\nupdate-alternatives: using /usr/sbin/ip6tables-legacy to provide /usr/sbin/ip6tables (ip6tables) in auto mode\nupdate-alternatives: using /usr/sbin/iptables-nft to provide /usr/sbin/iptables (iptables) in auto mode\nupdate-alternatives: using /usr/sbin/ip6tables-nft to provide /usr/sbin/ip6tables (ip6tables) in auto mode\nupdate-alternatives: using /usr/sbin/arptables-nft to provide /usr/sbin/arptables (arptables) in auto mode\nupdate-alternatives: using /usr/sbin/ebtables-nft to provide /usr/sbin/ebtables (ebtables) in auto mode\nSetting up qemu-system-gui (1:8.2.2+ds-0ubuntu1.7) ...\nSetting up parted (3.6-4build1) ...\nSetting up dnsmasq-base (2.90-2build2) ...\nSetting up swtpm-tools (0.7.3-0ubuntu5.24.04.1) ...\ninfo: Selecting GID from range 100 to 999 ...\ninfo: Adding group `swtpm' (GID 107) ...\ninfo: The home dir /var/lib/swtpm you specified can't be accessed: No such file or directory\n\ninfo: Selecting UID from range 100 to 999 ...\n\ninfo: Adding system user `swtpm' (UID 103) ...\ninfo: Adding new user `swtpm' (UID 103) with group `swtpm' ...\ninfo: Not creating home directory `/var/lib/swtpm'.\nSetting up virt-manager (1:4.1.0-3ubuntu0.1) ...\nSetting up qemu-system-modules-spice (1:8.2.2+ds-0ubuntu1.7) ...\nSetting up liblvm2cmd2.03:amd64 (2.03.16-3ubuntu3.2) ...\nSetting up dmeventd (2:1.02.185-3ubuntu3.2) ...\nCreated symlink /etc/systemd/system/sockets.target.wants/dm-event.socket → /usr/lib/systemd/system/dm-event.socket.\nSetting up lvm2 (2.03.16-3ubuntu3.2) ...\nCreated symlink /etc/systemd/system/sysinit.target.wants/blk-availability.service → /usr/lib/systemd/system/blk-ava\nilability.service.\nCreated symlink /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service → /usr/lib/systemd/system/lvm2-monito\nr.service.\nCreated symlink /etc/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket → /usr/lib/systemd/system/lvm2-lvmpol\nld.socket.\nProcessing triggers for libglib2.0-0t64:amd64 (2.80.0-6ubuntu3.4) ...\nProcessing triggers for dbus (1.14.10-4ubuntu4.1) ...\nProcessing triggers for hicolor-icon-theme (0.17-2) ...\nProcessing triggers for libc-bin (2.39-0ubuntu8.4) ...\nProcessing triggers for man-db (2.12.0-4build2) ...\nProcessing triggers for sgml-base (1.31) ...\nSetting up polkitd (124-2ubuntu1.24.04.2) ...\nCreating group 'polkitd' with GID 991.\nCreating user 'polkitd' (User for polkitd) with UID 991 and GID 991.\ninvoke-rc.d: could not determine current runlevel\ninvoke-rc.d: policy-rc.d denied execution of reload.\nstart-stop-daemon: unable to stat /usr/libexec/polkitd (No such file or directory)\nSetting up libvirt-daemon-system (10.0.0-2ubuntu8.7) ...\nuseradd warning: libvirt-qemu's uid 64055 is greater than SYS_UID_MAX 999\nchown: changing ownership of '/var/lib/libvirt/qemu/': Operation not permitted\ndpkg: error processing package libvirt-daemon-system (--configure):\n installed libvirt-daemon-system package post-installation script subprocess returned error exit status 1\nErrors were encountered while processing:\n libvirt-daemon-system\nE: Sub-process /usr/bin/dpkg returned an error code (1)\n📦[waylon@ubuntu ~]$ virt-manager\n```\n",
      "summary": "I got virtual machine manager running on two Bazzite machines today. It was a bit tricky, more than I thought actually. I ran into all sorts of...",
      "date_published": "2025-06-27T21:09:05Z",
      "date_modified": "2025-06-27T21:09:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bazzite"
      ]
    },
    {
      "id": "https://waylonwalker.com/csv/",
      "url": "https://waylonwalker.com/csv/",
      "title": "csv",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eage\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003ecity\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eAlice\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e30\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eNew York\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eBob\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e25\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eSan Francisco\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eage\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003ecity\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eAlice\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e30\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eNew York\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eBob\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e25\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eSan Francisco\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s\"\u003eCharlie\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003e35\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"s\"\u003eChicago\u003c/span\u003e\u003cspan class=\"p\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"chartjs-container\"\u003e\n  \u003ccanvas id=\"chartjs-1\"\u003e\u003c/canvas\u003e\n\u003c/div\u003e\n\u003cdiv class=\"chartjs-container\"\u003e\n  \u003ccanvas id=\"chartjs-2\"\u003e\u003c/canvas\u003e\n\u003c/div\u003e\n\u003cdiv class=\"chartjs-container\"\u003e\n  \u003ccanvas id=\"chartjs-3\"\u003e\u003c/canvas\u003e\n\u003c/div\u003e\n\u003cpre class=\"mermaid\"\u003e\ngraph TD\n  A--\u003eB\n  A--\u003eC\n  A--\u003eD\n  D--\u003eE\n\u003c/pre\u003e\n\n\u003cscript src=\"/assets/vendor/chartjs/chart.min.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function() {\n  (function() {\n    const ctx = document.getElementById('chartjs-1');\n    new Chart(ctx, {\n  \"type\": \"bar\",\n  \"data\": {\n    \"labels\": [\"Red\", \"Blue\"],\n    \"datasets\": [{ \"label\": \"Votes\", \"data\": [12, 19] }]\n  },\n  \"options\": {\n    \"responsive\": true\n  }\n});\n  })();\n  (function() {\n    const ctx = document.getElementById('chartjs-2');\n    new Chart(ctx, {\n  \"type\": \"line\",\n  \"data\": {\n    \"labels\": [\n      65,\n      59,\n      80,\n      81,\n      56,\n      55,\n      40\n    ],\n    \"datasets\": [\n      {\n        \"label\": \"My First Dataset\",\n        \"data\": [\n          65,\n          59,\n          80,\n          81,\n          56,\n          55,\n          40\n        ],\n        \"fill\": false,\n        \"borderColor\": \"rgb(75, 192, 192)\",\n        \"tension\": 0.1\n      }\n    ]\n  }\n});\n  })();\n  (function() {\n    const ctx = document.getElementById('chartjs-3');\n    new Chart(ctx, {\n  \"type\": \"radar\",\n  \"data\": {\n    \"labels\": [\n      \"Minecraft\",\n      \"Hollow Knight\",\n      \"Animal Well\",\n      \"Watching Netflix\",\n      \"Tetris\"\n\n    ],\n    \"datasets\": [\n      {\n        \"label\": \"MyChoices\",\n        \"data\": [\n        8, 9, 7, 4, 3\n        ],\n        \"fill\": false,\n        \"borderColor\": \"rgb(75, 192, 192)\",\n        \"tension\": 0.1\n      }\n    ]\n  }\n});\n  })();\n});\n\u003c/script\u003e\n\u003cscript type=\"module\"\u003e\n  import mermaid from '/assets/vendor/mermaid/mermaid.esm.min.mjs';\n  const rootStyle = getComputedStyle(document.documentElement);\n  const css = (name, fallback) =\u003e (rootStyle.getPropertyValue(name) || fallback).trim();\n  const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches ||\n    document.documentElement.dataset.theme === 'dark';\n  const accent = css('--color-primary', '#ffcd11');\n  const flowchart = {\n    nodeSpacing: 60,\n    rankSpacing: 90,\n    padding: 12,\n  };\n  const themeCSS = `\n    .label foreignObject \u003e div { padding: 14px 14px 10px; line-height: 1.2; }\n    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }\n    * { cursor: pointer; }\n  `;\n  const themeVariables = {\n    background: css('--color-background', '#ffffff'),\n    primaryColor: css('--color-code-bg', '#0a0a0a'),\n    primaryTextColor: css('--color-text', '#1f2937'),\n    primaryBorderColor: accent,\n    lineColor: accent,\n    textColor: css('--color-text', '#1f2937'),\n    nodeBkg: css('--color-code-bg', '#0a0a0a'),\n    nodeBorder: accent,\n    nodeTextColor: css('--color-text', '#1f2937'),\n    fontSize: '16px',\n    nodePadding: 20,\n    nodeTextMargin: 14,\n    clusterBkg: isDark ? css('--color-background', '#0f0f0f') : css('--color-surface', '#f9fafb'),\n    clusterBorder: accent,\n    clusterTextColor: css('--color-text', '#1f2937'),\n    titleColor: css('--color-text', '#1f2937'),\n    edgeLabelBackground: css('--color-code-bg', '#0a0a0a'),\n  };\n\n  const SVG_PAN_ZOOM_CDN = 'https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js';\n  let mermaidLightbox = null;\n  let activePanZoom = null;\n\n  // Inject lightbox styles once\n  const injectLightboxStyles = () =\u003e {\n    if (document.getElementById('mermaid-lightbox-css')) return;\n    const style = document.createElement('style');\n    style.id = 'mermaid-lightbox-css';\n    style.textContent = `\n      /* Container fills the GLightbox slide */\n      .mermaid-lightbox-wrap {\n        width: 100%;\n        height: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: transparent;\n        position: relative;\n      }\n      .mermaid-lightbox-wrap svg {\n        width: 100% !important;\n        height: 100% !important;\n        max-width: 100%;\n        max-height: 100%;\n      }\n      /* Hide GLightbox prev/next arrows (single-slide lightbox) */\n      .glightbox-container .gprev,\n      .glightbox-container .gnext {\n        display: none !important;\n      }\n      /* Hide description area that renders as a white box */\n      .glightbox-container .gslide-description,\n      .glightbox-container .gslide-title,\n      .glightbox-container .gdesc-inner,\n      .glightbox-container .gslide-desc {\n        display: none !important;\n      }\n      /* Remove white background from inline slide content */\n      .glightbox-container .gslide-inline {\n        background: transparent !important;\n      }\n      /* Make the inline content area fill the slide */\n      .glightbox-container .ginlined-content {\n        max-width: none !important;\n        max-height: none !important;\n        width: 100%;\n        height: 100%;\n        padding: 0 !important;\n      }\n      /* Remove box-shadow from the media container */\n      .glightbox-container .gslide-media {\n        box-shadow: none !important;\n      }\n      /* Toolbar styling */\n      .mermaid-lightbox-toolbar {\n        position: absolute;\n        top: 8px;\n        right: 8px;\n        z-index: 10;\n        display: flex;\n        gap: 4px;\n      }\n      .mermaid-pz-btn {\n        background: rgba(0,0,0,0.6);\n        color: #fff;\n        border: 1px solid rgba(255,255,255,0.3);\n        border-radius: 4px;\n        padding: 4px 10px;\n        cursor: pointer;\n        font-size: 14px;\n        line-height: 1;\n      }\n      .mermaid-pz-btn:hover {\n        background: rgba(0,0,0,0.8);\n        border-color: rgba(255,255,255,0.6);\n      }\n    `;\n    document.head.appendChild(style);\n  };\n\n  // Lazy-load svg-pan-zoom from CDN, returns a promise\n  const loadSvgPanZoom = () =\u003e {\n    if (typeof svgPanZoom !== 'undefined') return Promise.resolve();\n    return new Promise((resolve, reject) =\u003e {\n      const s = document.createElement('script');\n      s.src = SVG_PAN_ZOOM_CDN;\n      s.onload = resolve;\n      s.onerror = reject;\n      document.head.appendChild(s);\n    });\n  };\n\n  // Initialize svg-pan-zoom on the SVG inside the lightbox.\n  // Retries until the lightbox container has settled dimensions.\n  let _pzRetries = 0;\n  const initPanZoom = () =\u003e {\n    if (activePanZoom) return;\n    const container = document.querySelector('.glightbox-container .gslide.current .mermaid-lightbox-wrap');\n    if (!container) return;\n    const svgEl = container.querySelector('svg');\n    if (!svgEl) return;\n\n    // Ensure the container has layout dimensions before initializing.\n    const cRect = container.getBoundingClientRect();\n    if (cRect.width \u003c 10 || cRect.height \u003c 10) {\n      if (_pzRetries \u003c 20) { _pzRetries++; setTimeout(initPanZoom, 50); }\n      return;\n    }\n\n    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid\n    // usually have one; browser-rendered ones may not.\n    if (!svgEl.getAttribute('viewBox')) {\n      let w = parseFloat(svgEl.getAttribute('width'));\n      let h = parseFloat(svgEl.getAttribute('height'));\n      if (!w \u0026\u0026 svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);\n      if (!w || !h) {\n        const r = svgEl.getBoundingClientRect();\n        if (!w) w = r.width;\n        if (!h) h = r.height;\n      }\n      if (w \u003e 0 \u0026\u0026 h \u003e 0) {\n        svgEl.setAttribute('viewBox', '0 0 ' + w + ' ' + h);\n      } else if (_pzRetries \u003c 20) {\n        _pzRetries++; setTimeout(initPanZoom, 50); return;\n      }\n    }\n    _pzRetries = 0;\n\n    // Clear inline dimensions so SVG can be sized by the container\n    // and svg-pan-zoom can manage transforms.\n    svgEl.removeAttribute('width');\n    svgEl.removeAttribute('height');\n    svgEl.style.cssText = 'width:100%;height:100%;';\n\n    try {\n      activePanZoom = svgPanZoom(svgEl, {\n        zoomEnabled: true,\n        panEnabled: true,\n        controlIconsEnabled: false,\n        fit: true,\n        center: true,\n        contain: false,\n        minZoom: 0.3,\n        maxZoom: 10,\n        zoomScaleSensitivity: 0.3,\n        mouseWheelZoomEnabled: true,\n        preventMouseEventsDefault: true,\n      });\n      // Double-check fit after a frame in case dimensions shifted\n      requestAnimationFrame(() =\u003e {\n        if (!activePanZoom) return;\n        activePanZoom.resize();\n        activePanZoom.fit();\n        activePanZoom.center();\n      });\n    } catch (_) {\n      activePanZoom = null;\n    }\n\n    // Add reset/fit buttons\n    let toolbar = container.querySelector('.mermaid-lightbox-toolbar');\n    if (!toolbar) {\n      toolbar = document.createElement('div');\n      toolbar.className = 'mermaid-lightbox-toolbar';\n      toolbar.innerHTML =\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"fit\" title=\"Fit to view\"\u003eFit\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomin\" title=\"Zoom in\"\u003e+\u003c/button\u003e' +\n        '\u003cbutton class=\"mermaid-pz-btn\" data-action=\"zoomout\" title=\"Zoom out\"\u003e\u0026minus;\u003c/button\u003e';\n      toolbar.addEventListener('click', (ev) =\u003e {\n        const btn = ev.target.closest('[data-action]');\n        if (!btn || !activePanZoom) return;\n        ev.preventDefault();\n        ev.stopPropagation();\n        const action = btn.dataset.action;\n        if (action === 'fit') { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }\n        else if (action === 'zoomin') { activePanZoom.zoomIn(); }\n        else if (action === 'zoomout') { activePanZoom.zoomOut(); }\n      });\n      container.prepend(toolbar);\n    }\n  };\n\n  // Destroy pan-zoom on lightbox close\n  const destroyPanZoom = () =\u003e {\n    if (activePanZoom) {\n      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }\n      activePanZoom = null;\n    }\n  };\n\n  let _lbRetries = 0;\n  const ensureMermaidLightbox = () =\u003e {\n    const diagrams = document.querySelectorAll('.mermaid svg');\n    if (!diagrams.length) {\n      // Mermaid ESM may still be rendering -- retry up to 2s\n      if (_lbRetries \u003c 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }\n      return;\n    }\n    _lbRetries = 0;\n    injectLightboxStyles();\n    diagrams.forEach((svg) =\u003e {\n      if (svg.dataset.lightboxBound) return;\n      svg.dataset.lightboxBound = 'true';\n      svg.style.cursor = 'pointer';\n      svg.addEventListener('click', (e) =\u003e {\n        e.preventDefault();\n        e.stopPropagation();\n        const svgHtml = svg.outerHTML;\n        const openLightbox = () =\u003e {\n          if (!mermaidLightbox) {\n            mermaidLightbox = GLightbox({\n              selector: false,\n              openEffect: 'fade',\n              closeEffect: 'fade',\n              zoomable: false,\n              draggable: false,\n              skin: 'clean',\n            });\n            mermaidLightbox.on('slide_after_load', () =\u003e {\n              destroyPanZoom();\n              _pzRetries = 0;\n              loadSvgPanZoom().then(() =\u003e initPanZoom());\n            });\n            mermaidLightbox.on('close', destroyPanZoom);\n          }\n          mermaidLightbox.setElements([{\n            content: '\u003cdiv class=\"mermaid-lightbox-wrap\"\u003e' + svgHtml + '\u003c/div\u003e',\n            width: '90vw',\n            height: '90vh'\n          }]);\n          mermaidLightbox.open();\n          loadSvgPanZoom();\n        };\n        if (typeof GLightbox !== 'undefined') {\n          openLightbox();\n        } else if (window.initGLightbox) {\n          window.initGLightbox();\n          openLightbox();\n        } else {\n          window.addEventListener('glightbox-ready', () =\u003e { openLightbox(); }, { once: true });\n        }\n      });\n    });\n  };\n\n  mermaid.initialize({ startOnLoad: false, theme: 'base', themeVariables, flowchart, themeCSS });\n  window.initMermaid = async () =\u003e {\n    try {\n      await mermaid.run();\n    } catch (e) {\n      console.error('mermaid.run failed:', e);\n    }\n    ensureMermaidLightbox();\n  };\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', () =\u003e window.initMermaid());\n  } else {\n    window.initMermaid();\n  }\n\u003c/script\u003e",
      "content_text": "\n``` csv\nname,age,city\nAlice,30,New York\nBob,25,San Francisco\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\n```\n\n```csv\nname,age,city\nAlice,30,New York\nBob,25,San Francisco\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\nCharlie,35,Chicago\n```\n\n``` chartjs\n{\n  \"type\": \"bar\",\n  \"data\": {\n    \"labels\": [\"Red\", \"Blue\"],\n    \"datasets\": [{ \"label\": \"Votes\", \"data\": [12, 19] }]\n  },\n  \"options\": {\n    \"responsive\": true\n  }\n}\n```\n\n``` chartjs\n{\n  \"type\": \"line\",\n  \"data\": {\n    \"labels\": [\n      65,\n      59,\n      80,\n      81,\n      56,\n      55,\n      40\n    ],\n    \"datasets\": [\n      {\n        \"label\": \"My First Dataset\",\n        \"data\": [\n          65,\n          59,\n          80,\n          81,\n          56,\n          55,\n          40\n        ],\n        \"fill\": false,\n        \"borderColor\": \"rgb(75, 192, 192)\",\n        \"tension\": 0.1\n      }\n    ]\n  }\n}\n```\n\n``` chartjs\n{\n  \"type\": \"radar\",\n  \"data\": {\n    \"labels\": [\n      \"Minecraft\",\n      \"Hollow Knight\",\n      \"Animal Well\",\n      \"Watching Netflix\",\n      \"Tetris\"\n\n    ],\n    \"datasets\": [\n      {\n        \"label\": \"MyChoices\",\n        \"data\": [\n        8, 9, 7, 4, 3\n        ],\n        \"fill\": false,\n        \"borderColor\": \"rgb(75, 192, 192)\",\n        \"tension\": 0.1\n      }\n    ]\n  }\n}\n```\n\n``` mermaid\ngraph TD\n  A--\u003eB\n  A--\u003eC\n  A--\u003eD\n  D--\u003eE\n```\n",
      "date_published": "2025-06-26T20:44:33Z",
      "date_modified": "2025-06-26T20:44:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/perfect/",
      "url": "https://waylonwalker.com/perfect/",
      "title": "perfect",
      "content_html": "\u003cp\u003ePerfect is a made up word that humans use to describe something that is above\naverage, or works really well for them.  The idea of perfection is fleeting, as\nyou think more deeply about something, you can continue to chase the idea of\nperfection to unimaginable senses.  Sometimes \u003cem\u003eperfect\u003c/em\u003e simply means \u003cem\u003egood\nenough\u003c/em\u003e.  Could there be something better, \u003cstrong\u003eAlways\u003c/strong\u003e, but at what cost.  If I\nspent 10 more minutes on this post would it be better, maybe, but I might fuck\nit up.  If I spent my lifetime studying how humans read and think, sole\nfocused on how it pertains to this post, ya it would get better.  When I use\nthis word perfect it’s not meant in the most literal sense of the word, but\nperfect to me, maybe good enough given the constraints I have, its the best\nthing I’ve got.\u003c/p\u003e\n",
      "content_text": "\nPerfect is a made up word that humans use to describe something that is above\naverage, or works really well for them.  The idea of perfection is fleeting, as\nyou think more deeply about something, you can continue to chase the idea of\nperfection to unimaginable senses.  Sometimes _perfect_ simply means _good\nenough_.  Could there be something better, **Always**, but at what cost.  If I\nspent 10 more minutes on this post would it be better, maybe, but I might fuck\nit up.  If I spent my lifetime studying how humans read and think, sole\nfocused on how it pertains to this post, ya it would get better.  When I use\nthis word perfect it's not meant in the most literal sense of the word, but\nperfect to me, maybe good enough given the constraints I have, its the best\nthing I've got.\n",
      "summary": "Perfect is a made up word that humans use to describe something that is above average, or works really well for them. The idea of perfection is fleeting, as...",
      "date_published": "2025-06-26T13:55:17Z",
      "date_modified": "2025-06-26T13:55:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic"
      ]
    },
    {
      "id": "https://waylonwalker.com/sst-opencode/",
      "url": "https://waylonwalker.com/sst-opencode/",
      "title": "⭐ sst opencode",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/sst/opencode\" 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\"\u003eopencode\u003c/a\u003e by \u003ca href=\"https://github.com/sst\" 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\"\u003esst\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eAI coding agent, built for the terminal.\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [opencode](https://github.com/sst/opencode) by [sst](https://github.com/sst).\n\nAI coding agent, built for the terminal.\n",
      "summary": "Looking for inspiration? opencode by sst.",
      "date_published": "2025-06-24T14:38:03Z",
      "date_modified": "2025-06-24T14:38:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/anomalyco-opencode/",
      "url": "https://waylonwalker.com/anomalyco-opencode/",
      "title": "⭐ anomalyco opencode",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/anomalyco/opencode\" 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\"\u003eopencode\u003c/a\u003e from \u003ca href=\"https://github.com/anomalyco\" 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\"\u003eanomalyco\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe open source coding agent.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [opencode](https://github.com/anomalyco/opencode) from [anomalyco](https://github.com/anomalyco).\n\nThe open source coding agent.\n",
      "summary": "I'm impressed by opencode from anomalyco.",
      "date_published": "2025-06-24T14:38:03Z",
      "date_modified": "2025-06-24T14:38:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-718/",
      "url": "https://waylonwalker.com/thought-718/",
      "title": "💭 Notes – 06:11 Sun 22 Jun 2025 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-06-22T06:11Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 06:11 Sun 22 Jun 2025 — Notes – 06:11 Sun 22 Jun 2025\" loading=\"lazy\"/ data-glightbox=\"description: Notes – 06:11 Sun 22 Jun 2025 — Notes – 06:11 Sun 22 Jun 2025\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 06:11 Sun 22 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 06:11 Sun 22 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat’s even real anymore?  What a shitty age we are in that you have to form an opinion about news outlets and media outlets.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-06-22T06:11Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 06:11 Sun 22 Jun 2025 — Notes – 06:11 Sun 22 Jun 2025\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 06:11 Sun 22 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 06:11 Sun 22 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWhat's even real anymore?  What a shitty age we are in that you have to form an opinion about news outlets and media outlets.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/notes/2025-06-22T06:11Z/",
      "date_published": "2025-06-24T13:25:49Z",
      "date_modified": "2025-06-24T13:25:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dunno",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-717/",
      "url": "https://waylonwalker.com/thought-717/",
      "title": "💭 neverjust",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.neverjust.net/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.neverjust.net/opengraph-image.png?fcfb5c7c48aa740e\" alt=\"neverjust — a guide to better developer communication\" loading=\"lazy\"/ data-glightbox=\"description: neverjust — a guide to better developer communication\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eneverjust\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ea guide to better developer communication\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eneverjust · neverjust.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI just never quite understood why the word \u003cem\u003ejust\u003c/em\u003e can send people over the top.  I get it when you don’t know someone, you don’t have history with them, and they come in saying you are doing something wrong.\u003c/p\u003e\n\u003cp\u003eI pulled this out into a full post \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\" data-preview=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\"\u003ejust\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.neverjust.net/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.neverjust.net/opengraph-image.png?fcfb5c7c48aa740e\" alt=\"neverjust — a guide to better developer communication\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eneverjust\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ea guide to better developer communication\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eneverjust \u0026middot; neverjust.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI just never quite understood why the word *just* can send people over the top.  I get it when you don't know someone, you don't have history with them, and they come in saying you are doing something wrong.\n\nI pulled this out into a full post \u003ca href=\"/just/\" class=\"wikilink\" data-title=\"just\" data-description=\"I just never quite understood why the word can send people over the top. I get it when you don\u0026#39;t know someone, you don\u0026#39;t have history with them, and they...\" data-date=\"2025-06-23\"\u003ejust\u003c/a\u003e\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.neverjust.net/",
      "date_published": "2025-06-23T23:55:57Z",
      "date_modified": "2025-06-23T23:55:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/just/",
      "url": "https://waylonwalker.com/just/",
      "title": "just",
      "content_html": "\u003cp\u003eI just never quite understood why the word \u003ccode\u003ejust\u003c/code\u003e can send people over the top. I\nget it when you don’t know someone, you don’t have history with them, and they\ncome in saying you are doing something wrong.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhen you say “just,” you’re skipping over all the invisible complexity. You’re assuming the problem is simple, and that the person asking for help hasn’t already considered the obvious.\u003c/p\u003e\n\u003cp\u003eYou’re not seeing the constraints:\u003c/p\u003e\n\u003cp\u003eLegacy code\nBusiness requirements\nTeam conventions\nTime, budget, or technical debt\nPlatform limitations\u003c/p\u003e\n\u003cp\u003e~\u003ca href=\"https://www.neverjust.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.neverjust.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.neverjust.net.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.neverjust.net/\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIf I’ve worked with someone for more than 6 months, we have established\npatterns for problems, libraries we use, and they are deep in the weeds of\ntrying to fix something, I want to ask  “Why don’t you just do the same thing\nwe do everywhere else?”\u003c/p\u003e\n\u003cp\u003eI don’t need a snarky ass response, I don’t need you to get bent out of shape\nabout it. I \u003cstrong\u003eam\u003c/strong\u003e communicating that I do not know the damn constraints to\nthis problem.  I am communicating I am ignorant to the pain you have suffered\ntrying to do something for days that I thought should be copy paste pr up in 10\nminutes.\u003c/p\u003e\n\u003cp\u003eWhat I want to hear is “Well here’s the story of why this particular one is\ncomplex, and let me take you on my travels.” or “I’m about there and don’t have\ntime right now just understand that this is different, we can discuss later.”\u003c/p\u003e\n\u003cp\u003eMy \u003cem\u003ejust\u003c/em\u003e should not cause you pain, it should \u003cstrong\u003enot\u003c/strong\u003e cause you to feel belittled,\nIf we have worked together for any amount of time and have respect for each\nother, you should understand that this is not coming from a place of\nbelittlement, rather its an open door for you to explain why this thing is not\nwhat it seems at surface level.\u003c/p\u003e\n\u003ch2 id=\"just-use-another-library\"\u003eJust use another library \u003ca href=\"#just-use-another-library\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4404a111-40be-4066-9ba0-08720133f011.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4404a111-40be-4066-9ba0-08720133f011.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003e~\u003ca href=\"https://www.neverjust.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.neverjust.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.neverjust.net.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.neverjust.net/\u003c/a\u003e\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eHere Sam asks “Why don’t you just use another library?”, and Alex replies “If\nit were that easy, I would have done it already.”\u003c/p\u003e\n\u003cp\u003eHonestly this example is a little vague and non-specific.  On boarding a new\nlibrary to a team can be a big ask.  It becomes something that the team has to\nintegrate and depend on, and take on supply chain risk.  This example would be\nbetter with something more specific, if the team often uses a mix of SQL,\npandas, and occasionally pulls out polars for bigger tasks, Sam  might\nlegitimately ask “why don’t you just use \u0026lt;insert pandas, polars, SQL\u0026gt;”.\u003c/p\u003e\n\u003cp\u003eThis communicates that Sam see’s the obvious we use polars when things get\ntough, or we use SQL when data transfer gets too slow.\u003c/p\u003e\n\u003ch2 id=\"you-are-not-dumb\"\u003eYou are not Dumb \u003ca href=\"#you-are-not-dumb\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI want to hear the story. In no way am I calling you dumb, in fact I’m probably\nclaiming ignorance to the problem at hand.  I see that you have a lot more time\ninvested than me and I’m offering help, not asking for snarky ass remarks back\n\u003cstrong\u003eAlex\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eIn fact take it as a sign that I am this comfortable with you and that you are\nso far from dumb that I don’t have to risk being taken out of context.\u003c/p\u003e\n\u003ch2 id=\"or-maybe-you-are\"\u003eOr maybe you are \u003ca href=\"#or-maybe-you-are\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOr maybe Sam is trying to belittle Alex here, if that’s the case we need to\nhave a conversation and work some shit out or find somewhere else to be, Alex\nshould not be belittled like this because Sam is full of himself.\u003c/p\u003e\n\u003ch2 id=\"suggestions\"\u003eSuggestions \u003ca href=\"#suggestions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b84360f0-a6bf-4c63-84d2-1710c6b06eca.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b84360f0-a6bf-4c63-84d2-1710c6b06eca.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003e~\u003ca href=\"https://www.neverjust.net/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.neverjust.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.neverjust.net.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.neverjust.net/\u003c/a\u003e\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eThe suggestions are \u003cem\u003efine\u003c/em\u003e, but they feel like they are asking me to hunt\naround for the problem rather than you recognizing my ignorance to the issue,\nand let Sam tell me “Why don’t you just use another library?”\u003c/p\u003e\n\u003ch2 id=\"final-thoughts\"\u003eFinal Thoughts \u003ca href=\"#final-thoughts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn recognizing how much pain this causes others I do try to limit my use of\njust, it comes out from time to time, though I try not to.  I try to remain\nkind, humble, and helpful.  And typically in the first few weeks or months\ninteraction with new teams/people I kinda walk on eggshells for a bit.  I don’t\nknow you or where you are, if I make it sound like you are dumb and turns out\nthat’s what people think of you I’m gonna feel kinda bad.  Just understand that\nnot everyone is trying to attack you, communication via text is hard, give\nfolks a break before jumping them.\u003c/p\u003e\n\u003ch2 id=\"dont-be-an-ass\"\u003eDon’t be an Ass \u003ca href=\"#dont-be-an-ass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis post is not trying to say that you can freely belittle your team, go forth\nand be the irritating guy on the team that comes off like a know it all.  I’m\nsaying when you are on the receiving end try not to take it with such offense\nand as an opportunity to explain without the need to dance around the issue.\u003c/p\u003e\n",
      "content_text": "\nI just never quite understood why the word `just` can send people over the top. I\nget it when you don't know someone, you don't have history with them, and they\ncome in saying you are doing something wrong.\n\n\u003e When you say \"just,\" you're skipping over all the invisible complexity. You're assuming the problem is simple, and that the person asking for help hasn't already considered the obvious.\n\u003e\n\u003e You're not seeing the constraints:\n\u003e\n\u003e Legacy code\n\u003e Business requirements\n\u003e Team conventions\n\u003e Time, budget, or technical debt\n\u003e Platform limitations\n\u003e\n\u003e ~\u003chttps://www.neverjust.net/\u003e\n\nIf I've worked with someone for more than 6 months, we have established\npatterns for problems, libraries we use, and they are deep in the weeds of\ntrying to fix something, I want to ask  \"Why don't you just do the same thing\nwe do everywhere else?\"\n\nI don't need a snarky ass response, I don't need you to get bent out of shape\nabout it. I **am** communicating that I do not know the damn constraints to\nthis problem.  I am communicating I am ignorant to the pain you have suffered\ntrying to do something for days that I thought should be copy paste pr up in 10\nminutes.\n\nWhat I want to hear is \"Well here's the story of why this particular one is\ncomplex, and let me take you on my travels.\" or \"I'm about there and don't have\ntime right now just understand that this is different, we can discuss later.\"\n\nMy _just_ should not cause you pain, it should **not** cause you to feel belittled,\nIf we have worked together for any amount of time and have respect for each\nother, you should understand that this is not coming from a place of\nbelittlement, rather its an open door for you to explain why this thing is not\nwhat it seems at surface level.\n\n## Just use another library\n\n![image](https://dropper.waylonwalker.com/api/file/4404a111-40be-4066-9ba0-08720133f011.webp)\n\u003e ~\u003chttps://www.neverjust.net/\u003e\n\nHere Sam asks \"Why don't you just use another library?\", and Alex replies \"If\nit were that easy, I would have done it already.\"\n\nHonestly this example is a little vague and non-specific.  On boarding a new\nlibrary to a team can be a big ask.  It becomes something that the team has to\nintegrate and depend on, and take on supply chain risk.  This example would be\nbetter with something more specific, if the team often uses a mix of SQL,\npandas, and occasionally pulls out polars for bigger tasks, Sam  might\nlegitimately ask \"why don't you just use \u003cinsert pandas, polars, SQL\u003e\".\n\nThis communicates that Sam see's the obvious we use polars when things get\ntough, or we use SQL when data transfer gets too slow.\n\n## You are not Dumb\n\nI want to hear the story. In no way am I calling you dumb, in fact I'm probably\nclaiming ignorance to the problem at hand.  I see that you have a lot more time\ninvested than me and I'm offering help, not asking for snarky ass remarks back\n**Alex**.\n\nIn fact take it as a sign that I am this comfortable with you and that you are\nso far from dumb that I don't have to risk being taken out of context.\n\n## Or maybe you are\n\nOr maybe Sam is trying to belittle Alex here, if that's the case we need to\nhave a conversation and work some shit out or find somewhere else to be, Alex\nshould not be belittled like this because Sam is full of himself.\n\n## Suggestions\n\n![image](https://dropper.waylonwalker.com/api/file/b84360f0-a6bf-4c63-84d2-1710c6b06eca.webp)\n\u003e ~\u003chttps://www.neverjust.net/\u003e\n\nThe suggestions are _fine_, but they feel like they are asking me to hunt\naround for the problem rather than you recognizing my ignorance to the issue,\nand let Sam tell me \"Why don't you just use another library?\"\n\n## Final Thoughts\n\nIn recognizing how much pain this causes others I do try to limit my use of\njust, it comes out from time to time, though I try not to.  I try to remain\nkind, humble, and helpful.  And typically in the first few weeks or months\ninteraction with new teams/people I kinda walk on eggshells for a bit.  I don't\nknow you or where you are, if I make it sound like you are dumb and turns out\nthat's what people think of you I'm gonna feel kinda bad.  Just understand that\nnot everyone is trying to attack you, communication via text is hard, give\nfolks a break before jumping them.\n\n## Don't be an Ass\n\nThis post is not trying to say that you can freely belittle your team, go forth\nand be the irritating guy on the team that comes off like a know it all.  I'm\nsaying when you are on the receiving end try not to take it with such offense\nand as an opportunity to explain without the need to dance around the issue.\n",
      "summary": "I just never quite understood why the word can send people over the top. I get it when you don't know someone, you don't have history with them, and they...",
      "date_published": "2025-06-23T19:02:29Z",
      "date_modified": "2025-06-23T19:02:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-716/",
      "url": "https://waylonwalker.com/thought-716/",
      "title": "💭 Software engineer get laid off in 2025 - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"_HcN2zdNoms\" title=\"Software engineer get laid off in 2025\" playlabel=\"Play: Software engineer get laid off in 2025\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e2025 is not the year to get put on the market, its rough out there.  Junior’s have little chance, senior+ are even struggling.  We had it easy from 2020-2023, now its over saturated and you have to want to be in this industry to be here and stay here.  It used to be a fine place to get a good job to pay the bills, the bar has been raised and if you don’t want to be here you are going to struggle.  Theo covers this in this linked video deeply [[ thoughts-472 ]].\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"_HcN2zdNoms\" title=\"Software engineer get laid off in 2025\" playlabel=\"Play: Software engineer get laid off in 2025\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n2025 is not the year to get put on the market, its rough out there.  Junior's have little chance, senior+ are even struggling.  We had it easy from 2020-2023, now its over saturated and you have to want to be in this industry to be here and stay here.  It used to be a fine place to get a good job to pay the bills, the bar has been raised and if you don't want to be here you are going to struggle.  Theo covers this in this linked video deeply [[ thoughts-472 ]].\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/_HcN2zdNoms",
      "date_published": "2025-06-23T13:13:58Z",
      "date_modified": "2025-06-23T13:13:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-715/",
      "url": "https://waylonwalker.com/thought-715/",
      "title": "💭 If Netflix Made a ‘Day in the Life of a Software Engineer’ - Y...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bvINaJEQNSQ\" title=\"If Netflix Made a ‘Day in the Life of a Software Engineer’\" playlabel=\"Play: If Netflix Made a ‘Day in the Life of a Software Engineer’\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eNailed the netflix documentary style.  Videos like this make me so grateful that I have  a job in this rough market, if you’ve followed jepi’s series you know he’s been out of a job for months, and he is not alone in this.  This is the year of “laid of, i didn’t get laid off, I left to focus on my startup”, [[ thoughts-716 ]]\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bvINaJEQNSQ\" title=\"If Netflix Made a ‘Day in the Life of a Software Engineer’\" playlabel=\"Play: If Netflix Made a ‘Day in the Life of a Software Engineer’\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nNailed the netflix documentary style.  Videos like this make me so grateful that I have  a job in this rough market, if you've followed jepi's series you know he's been out of a job for months, and he is not alone in this.  This is the year of \"laid of, i didn't get laid off, I left to focus on my startup\", [[ thoughts-716 ]]\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=bvINaJEQNSQ",
      "date_published": "2025-06-23T12:51:39Z",
      "date_modified": "2025-06-23T12:51:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-708/",
      "url": "https://waylonwalker.com/thought-708/",
      "title": "💭 Notes – 09:32 Thu 19 Jun 2025 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-06-19T09:32Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 09:32 Thu 19 Jun 2025 — Notes – 09:32 Thu 19 Jun 2025\" loading=\"lazy\"/ data-glightbox=\"description: Notes – 09:32 Thu 19 Jun 2025 — Notes – 09:32 Thu 19 Jun 2025\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 09:32 Thu 19 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 09:32 Thu 19 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDavid’s design on his blog is fantastic likely from years of small improvements like this converting ugly quotes to pretty quotes and optimizing fonts.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt’s common for markdown libraries to convert the first to the second like my build script does.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis is new to me, I had no idea that markdown libraries did this, I’m now interested if markdown-it does it.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor subsetting I use the fontTools library but I’ve no idea how to setup Python environments. I got it working once and failed to document the process.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eDavid, David, David, I’m sorry python has done you this dirty.  I should do a post on making python environments in the age of \u003ca href=\"/tags/uv/\" class=\"wikilink\" data-title=\"Posts tagged: uv\" data-description=\"All posts with the tag \u0026#34;uv\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;uv\u0026#34;\"\u003ePosts tagged: uv\u003c/a\u003e.  You got options to run in docker/podman, a whole ass vm, uv venv, uvx, uv run, uv script, python -m venv, virtualenv, poetry, hatch, and too many more.  The ones that matter are containers or uv.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/notes/2025-06-19T09:32Z/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/assets/images/ogimage.png\" alt=\"Notes – 09:32 Thu 19 Jun 2025 — Notes – 09:32 Thu 19 Jun 2025\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNotes – 09:32 Thu 19 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eNotes – 09:32 Thu 19 Jun 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDavid's design on his blog is fantastic likely from years of small improvements like this converting ugly quotes to pretty quotes and optimizing fonts.\n\n\u003e It’s common for markdown libraries to convert the first to the second like my build script does.\n\nThis is new to me, I had no idea that markdown libraries did this, I'm now interested if markdown-it does it.\n\n\u003e For subsetting I use the fontTools library but I’ve no idea how to setup Python environments. I got it working once and failed to document the process. \n\nDavid, David, David, I'm sorry python has done you this dirty.  I should do a post on making python environments in the age of \u003ca href=\"/tags/uv/\" class=\"wikilink\" data-title=\"Posts tagged: uv\" data-description=\"All posts with the tag \u0026#34;uv\u0026#34;\"\u003ePosts tagged: uv\u003c/a\u003e.  You got options to run in docker/podman, a whole ass vm, uv venv, uvx, uv run, uv script, python -m venv, virtualenv, poetry, hatch, and too many more.  The ones that matter are containers or uv.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/notes/2025-06-19T09:32Z/",
      "date_published": "2025-06-19T13:18:20Z",
      "date_modified": "2025-06-19T13:18:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "fonts",
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/copier-vcs-quirks/",
      "url": "https://waylonwalker.com/copier-vcs-quirks/",
      "title": "copier vcs quirks",
      "content_html": "\u003cp\u003eCopier has a few quirks with vcs that I just discovered by trying to test out\nsome changes.  I may have some config that I have long forgotten about\nsomewhere deep in my dotfiles, I don’t think so, but id love to be wrong and\ncorrected, please reach out.\u003c/p\u003e\n\u003ch2 id=\"what-doesnt-work\"\u003eWhat Doesn’t Work \u003ca href=\"#what-doesnt-work\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI tried throwing everything at this template to make it work.  I tried a bunch\nof flags that did not work. I tried making commits to the local repo to get rid\nof the dirty warning. I really wanted to test new changes locally without\ncommitting and pushing untested and potentially broken changes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euvx copier copy ../markata-blog-starter .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euvx copier copy gh:waylonwalker/markata-blog-starter@develop .\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euvx copier copy ../markata-blog-starter . -wlg --trust\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"what-works-----vcs-ref\"\u003eWhat Works - –vcs-ref \u003ca href=\"#what-works-----vcs-ref\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFinally after trying everything to get the local copy to work, and my guess of\n@branch not working I found this to work.  It does require me to go to the repo\non my develop branch.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euvx copier copy gh:waylonwalker/markata-blog-starter --vcs-ref develop .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"what-works---delete-\u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e\"\u003eWhat Works - delete .git \u003ca href=\"#what-works---delete-git\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eReally this might be my best option to make quick changes and test them locally\nwithout going through a version control system.  It is not ideal, but makes it\neasy to quickly iterate on.  I might be renaming .git, or copying to /tmp for\nquick iteration.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm -rf .git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003euvx copier copy ../markata-blog-starter .\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"copier-i-love\"\u003eCopier I love \u003ca href=\"#copier-i-love\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCopier is a great templating tool.  I really love it.  I use it every single\nday to create posts on this blog using \u003ca href=\"/tmux-copier-templates/\" class=\"wikilink\" data-title=\"Tmux hotkey for copier templates\" data-description=\"I have added a hotkey to my copier template setup to quickly access all my templates at any time from tmux. At any point I can hit , thats holding control...\" data-date=\"2022-01-24\" data-preview=\"I have added a hotkey to my copier template setup to quickly access all my templates at any time from tmux. At any point I can hit , thats holding control...\"\u003eTmux hotkey for copier templates\u003c/a\u003e.  This is\nthe first time this quirk has got me and it had me puzzled for 45 minutes as I\ndid not expect this behavior whatsoever.\u003c/p\u003e\n",
      "content_text": "\nCopier has a few quirks with vcs that I just discovered by trying to test out\nsome changes.  I may have some config that I have long forgotten about\nsomewhere deep in my dotfiles, I don't think so, but id love to be wrong and\ncorrected, please reach out.\n\n## What Doesn't Work\n\nI tried throwing everything at this template to make it work.  I tried a bunch\nof flags that did not work. I tried making commits to the local repo to get rid\nof the dirty warning. I really wanted to test new changes locally without\ncommitting and pushing untested and potentially broken changes.\n\n``` bash\nuvx copier copy ../markata-blog-starter .\nuvx copier copy gh:waylonwalker/markata-blog-starter@develop .\nuvx copier copy ../markata-blog-starter . -wlg --trust\n```\n\n## What Works - --vcs-ref\n\nFinally after trying everything to get the local copy to work, and my guess of\n@branch not working I found this to work.  It does require me to go to the repo\non my develop branch.\n\n``` bash\nuvx copier copy gh:waylonwalker/markata-blog-starter --vcs-ref develop .\n```\n\n## What Works - delete .git\n\nReally this might be my best option to make quick changes and test them locally\nwithout going through a version control system.  It is not ideal, but makes it\neasy to quickly iterate on.  I might be renaming .git, or copying to /tmp for\nquick iteration.\n\n``` bash\nrm -rf .git\nuvx copier copy ../markata-blog-starter .\n```\n\n## Copier I love\n\nCopier is a great templating tool.  I really love it.  I use it every single\nday to create posts on this blog using \u003ca href=\"/tmux-copier-templates/\" class=\"wikilink\" data-title=\"Tmux hotkey for copier templates\" data-description=\"I have added a hotkey to my copier template setup to quickly access all my templates at any time from tmux. At any point I can hit , thats holding control...\" data-date=\"2022-01-24\"\u003eTmux hotkey for copier templates\u003c/a\u003e.  This is\nthe first time this quirk has got me and it had me puzzled for 45 minutes as I\ndid not expect this behavior whatsoever.\n\n\n",
      "summary": "Copier has a few quirks with vcs that I just discovered by trying to test out some changes. I may have some config that I have long forgotten about somewhere...",
      "date_published": "2025-06-19T08:04:51Z",
      "date_modified": "2025-06-19T08:04:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "copier",
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/canonical-checkbox/",
      "url": "https://waylonwalker.com/canonical-checkbox/",
      "title": "⭐ canonical checkbox",
      "content_html": "\u003cp\u003eI came across \u003ca href=\"https://github.com/canonical/checkbox\" 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\"\u003echeckbox\u003c/a\u003e from \u003ca href=\"https://github.com/canonical\" 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\"\u003ecanonical\u003c/a\u003e, and it’s packed with great features and ideas.\u003c/p\u003e\n\u003cp\u003eCheckbox is a testing framework used to validate device compatibility with Ubuntu Linux. It’s the testing tool developed for the purposes of the Ubuntu Certification program.\u003c/p\u003e\n",
      "content_text": "\nI came across [checkbox](https://github.com/canonical/checkbox) from [canonical](https://github.com/canonical), and it's packed with great features and ideas.\n\nCheckbox is a testing framework used to validate device compatibility with Ubuntu Linux. It’s the testing tool developed for the purposes of the Ubuntu Certification program.\n",
      "summary": "I came across checkbox from canonical, and it's packed with great features and ideas.",
      "date_published": "2025-06-18T02:07:34Z",
      "date_modified": "2025-06-18T02:07:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-704/",
      "url": "https://waylonwalker.com/thought-704/",
      "title": "💭 Bug: Pypi metadata is wrong (Requires: Python \u003e=3.6) · Issue #...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/issues/1131\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/bb386566ec32565615608d972769aa7a4695afabb6146c28fdec0287958ea9ac/jmcnamara/XlsxWriter/issues/1131\" alt=\"Bug: Pypi metadata is wrong (Requires: Python \u0026gt;=3.6) · Issue #1131 · jmcnamara/XlsxWriter — Current behavior When pulling the dependency with pip (without pinning the version), our python3.6 tester pulls 3.2.3 and not 3.2.2 even though the version is no longer compatible with python 3.6. ...\" loading=\"lazy\"/ data-glightbox=\"description: Bug: Pypi metadata is wrong (Requires: Python \u0026gt;=3.6) · Issue #1131 · jmcnamara/XlsxWriter — Current behavior When pulling the dependency with pip (without pinning the version), our python3.6 tester pulls 3.2.3 and not 3.2.2 even though the version is no longer compatible with python 3.6. ...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBug: Pypi metadata is wrong (Requires: Python \u0026gt;=3.6) · Issue #1131 · jmcnamara/XlsxWriter\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eCurrent behavior When pulling the dependency with pip (without pinning the version), our python3.6 tester pulls 3.2.3 and not 3.2.2 even though the version is no longer compatible with python 3.6. ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003epypi yanks suck, they are rare, this one got me today as it was a pinned dependency in my dependency chain.  The latest release broke python 3.6/3.7 (which 3.6 has  been EOL for 3.5 years btw), and it claimed \u0026gt;=3.6.  In order to allow users to still install xlsxwriter without pinning down it needed yanked.  I’m not sure if there was another way around it as pypi releases are immutable, so you cannot fix\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2ba70753-5723-4b96-8f2b-8090be07d6ad.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2ba70753-5723-4b96-8f2b-8090be07d6ad.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eThis now has me wondering what the heck is using it with old pythons.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003cp\u003eIt appears to have broken builds on Canonical/checkbox for ubuntu 18.04.  Checkbox is a device compatibility testing framework.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/canonical/checkbox/actions/runs/14644718138/job/41098549191#step:8:125\" 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\"\u003ehttps://github.com/canonical/checkbox/actions/runs/14644718138/job/41098549191#step:8:125\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6fe3e01b-e180-4d2a-a00c-6b9fab727626.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/6fe3e01b-e180-4d2a-a00c-6b9fab727626.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/jmcnamara/XlsxWriter/issues/1131\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/bb386566ec32565615608d972769aa7a4695afabb6146c28fdec0287958ea9ac/jmcnamara/XlsxWriter/issues/1131\" alt=\"Bug: Pypi metadata is wrong (Requires: Python \u0026gt;=3.6) · Issue #1131 · jmcnamara/XlsxWriter — Current behavior When pulling the dependency with pip (without pinning the version), our python3.6 tester pulls 3.2.3 and not 3.2.2 even though the version is no longer compatible with python 3.6. ...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBug: Pypi metadata is wrong (Requires: Python \u0026gt;=3.6) · Issue #1131 · jmcnamara/XlsxWriter\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eCurrent behavior When pulling the dependency with pip (without pinning the version), our python3.6 tester pulls 3.2.3 and not 3.2.2 even though the version is no longer compatible with python 3.6. ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\npypi yanks suck, they are rare, this one got me today as it was a pinned dependency in my dependency chain.  The latest release broke python 3.6/3.7 (which 3.6 has  been EOL for 3.5 years btw), and it claimed \u003e=3.6.  In order to allow users to still install xlsxwriter without pinning down it needed yanked.  I'm not sure if there was another way around it as pypi releases are immutable, so you cannot fix  \n\n![image](https://dropper.waylonwalker.com/api/file/2ba70753-5723-4b96-8f2b-8090be07d6ad.webp)\n\n\u003e This now has me wondering what the heck is using it with old pythons.\n\nIt appears to have broken builds on Canonical/checkbox for ubuntu 18.04.  Checkbox is a device compatibility testing framework.\n\nhttps://github.com/canonical/checkbox/actions/runs/14644718138/job/41098549191#step:8:125\n\n![image](https://dropper.waylonwalker.com/api/file/6fe3e01b-e180-4d2a-a00c-6b9fab727626.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/jmcnamara/XlsxWriter/issues/1131",
      "date_published": "2025-06-18T02:04:41Z",
      "date_modified": "2025-06-18T02:04:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "pypi",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-703/",
      "url": "https://waylonwalker.com/thought-703/",
      "title": "💭 Conventional Commits",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.conventionalcommits.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.conventionalcommits.org.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eConventional Commits\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA specification for adding human and machine readable meaning to commit messages\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eConventional Commits · conventionalcommits.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI try to use conventional commits on all of my commits, but I often end up only using feat/fix.  I need to keep this page handy and get new verbiage worked into my language\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efix:\u003c/li\u003e\n\u003cli\u003efeat:\u003c/li\u003e\n\u003cli\u003ebuild:\u003c/li\u003e\n\u003cli\u003echore:\u003c/li\u003e\n\u003cli\u003eci:\u003c/li\u003e\n\u003cli\u003edocs:\u003c/li\u003e\n\u003cli\u003estyle:\u003c/li\u003e\n\u003cli\u003erefactor:\u003c/li\u003e\n\u003cli\u003eperf:\u003c/li\u003e\n\u003cli\u003etest:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOptionally include a scope \u003ccode\u003efix(parser):\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eA bang indicates a breaking change note. For example …\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003echore!: drop support \u003cspan class=\"k\"\u003efor\u003c/span\u003e Node \u003cspan class=\"m\"\u003e6\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eBREAKING CHANGE: use JavaScript features not available in Node 6.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.conventionalcommits.org/en/v1.0.0/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eConventional Commits\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA specification for adding human and machine readable meaning to commit messages\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eConventional Commits \u0026middot; conventionalcommits.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI try to use conventional commits on all of my commits, but I often end up only using feat/fix.  I need to keep this page handy and get new verbiage worked into my language \n\n* fix:\n* feat:\n* build:\n* chore:\n* ci:\n* docs:\n* style:\n* refactor:\n* perf:\n* test:\n\nOptionally include a scope `fix(parser):`\n\nA bang indicates a breaking change note. For example ...\n\n``` bash\nchore!: drop support for Node 6\n\nBREAKING CHANGE: use JavaScript features not available in Node 6.\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.conventionalcommits.org/en/v1.0.0/",
      "date_published": "2025-06-17T16:37:14Z",
      "date_modified": "2025-06-17T16:37:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-702/",
      "url": "https://waylonwalker.com/thought-702/",
      "title": "💭 FROGS ep1 The home - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bPlPkDEcZBA\" title=\"FROGS ep1 The home\" playlabel=\"Play: FROGS ep1 The home\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWyatt built out this full world to start making a film series about FROGS.  The entire set it built on a flat world, but yet feels so immersive.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bPlPkDEcZBA\" title=\"FROGS ep1 The home\" playlabel=\"Play: FROGS ep1 The home\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWyatt built out this full world to start making a film series about FROGS.  The entire set it built on a flat world, but yet feels so immersive.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=bPlPkDEcZBA\u0026list=TLPQMTcwNjIwMjVHHHsm3llljQ\u0026index=3",
      "date_published": "2025-06-17T13:08:54Z",
      "date_modified": "2025-06-17T13:08:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "minecraft",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-695/",
      "url": "https://waylonwalker.com/thought-695/",
      "title": "💭 Visualizing My Blog’s Internal Links - Jim Nielsen’s Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2022/visualizing-my-blogs-links/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eVisualizing My Blog’s Internal Links\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI like Jim’s visualizations on his site, reminds me a lot of obsidian.  I’ve tried to do the same on my \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\"\u003eanalytics\u003c/a\u003e page in the past, but it didn’t come out right.  I’m going to have to give this another go.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2022/visualizing-my-blogs-links/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eVisualizing My Blog’s Internal Links\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI like Jim's visualizations on his site, reminds me a lot of obsidian.  I've tried to do the same on my \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e page in the past, but it didn't come out right.  I'm going to have to give this another go.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/2022/visualizing-my-blogs-links/",
      "date_published": "2025-06-16T00:48:19Z",
      "date_modified": "2025-06-16T00:48:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-694/",
      "url": "https://waylonwalker.com/thought-694/",
      "title": "💭 Your Framework is Showing 😳 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/06/13/your-framework-is-showing-nextjs-error/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2025-06-13-your-framework-is-showing-nextjs-error.png\" alt=\"Your Framework is Showing — The one where I’ve had enough of the same Next.js error\" loading=\"lazy\"/ data-glightbox=\"description: Your Framework is Showing — The one where I’ve had enough of the same Next.js error\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYour Framework is Showing\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I’ve had enough of the same Next.js error\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat breakdown of nextjs.  I was highly unaware of its \u003cem\u003eperformance\u003c/em\u003e optimizations before reading this.  The smell of vendor lock in from next/vercel has been there from the start, this is the first real claim I’ve seen.\u003c/p\u003e\n\u003cp\u003eI’m out on modern js front ends, complex builds that change every 6 months, design patterns are out of date just as fast.  Its hard to keep up, especially when you don’t have the use case for highly interactive apps.  Libraries like \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e or plain ol js gets the job done on the majority of sites and everything I tend to work on.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/06/13/your-framework-is-showing-nextjs-error/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2025-06-13-your-framework-is-showing-nextjs-error.png\" alt=\"Your Framework is Showing — The one where I’ve had enough of the same Next.js error\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYour Framework is Showing\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I’ve had enough of the same Next.js error\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGreat breakdown of nextjs.  I was highly unaware of its _performance_ optimizations before reading this.  The smell of vendor lock in from next/vercel has been there from the start, this is the first real claim I've seen.  \n\nI'm out on modern js front ends, complex builds that change every 6 months, design patterns are out of date just as fast.  Its hard to keep up, especially when you don't have the use case for highly interactive apps.  Libraries like htmx or plain ol js gets the job done on the majority of sites and everything I tend to work on.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2025/06/13/your-framework-is-showing-nextjs-error/",
      "date_published": "2025-06-15T00:02:28Z",
      "date_modified": "2025-06-15T00:02:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-693/",
      "url": "https://waylonwalker.com/thought-693/",
      "title": "💭 I DONT KNOW WHY - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Se6HHCcy8q4\" title=\"I DONT KNOW WHY\" playlabel=\"Play: I DONT KNOW WHY\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m totally with Prime here, there is something about the read only, mouse clicking part of my brain that causes me to be more critical of the code at a different level.  It doesn’t hit the part of my brain thinking about the edit or how to do the edit, it hits a part thats thinking about how I will have to deal with the code moving forward.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Se6HHCcy8q4\" title=\"I DONT KNOW WHY\" playlabel=\"Play: I DONT KNOW WHY\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI'm totally with Prime here, there is something about the read only, mouse clicking part of my brain that causes me to be more critical of the code at a different level.  It doesn't hit the part of my brain thinking about the edit or how to do the edit, it hits a part thats thinking about how I will have to deal with the code moving forward.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/Se6HHCcy8q4",
      "date_published": "2025-06-14T22:44:34Z",
      "date_modified": "2025-06-14T22:44:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-692/",
      "url": "https://waylonwalker.com/thought-692/",
      "title": "💭 Next.js 15.1+ is unusable outside of Vercel | Omar Abid - Pers...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://omarabid.com/nextjs-vercel\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNext.js 15.1+ is unusable outside of Vercel\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTBD\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eOmar Abid - Personal Blog · omarabid.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eVendor lock in disguised as performance.  Nextjs aparantly now streams all of your metadata on the fly with js.  This would obviously kill all seo right, well not if you’re on vercel they automatically detect search crawlers and serve the metadata.  Why the f do they need to do this and not just serve everyone the metadata.  The Web is this beautiful place where anyone can create and build amazing things with a relatively low skill.  Js is meant to be enhancement, not degrade the experience of its users.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://omarabid.com/nextjs-vercel\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNext.js 15.1+ is unusable outside of Vercel\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTBD\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eOmar Abid - Personal Blog \u0026middot; omarabid.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nVendor lock in disguised as performance.  Nextjs aparantly now streams all of your metadata on the fly with js.  This would obviously kill all seo right, well not if you're on vercel they automatically detect search crawlers and serve the metadata.  Why the f do they need to do this and not just serve everyone the metadata.  The Web is this beautiful place where anyone can create and build amazing things with a relatively low skill.  Js is meant to be enhancement, not degrade the experience of its users.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://omarabid.com/nextjs-vercel",
      "date_published": "2025-06-14T18:10:58Z",
      "date_modified": "2025-06-14T18:10:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/using-yek/",
      "url": "https://waylonwalker.com/using-yek/",
      "title": "using yek to serialize text files into llm friendly file",
      "content_html": "\u003cp\u003eI’ve been using \u003ca href=\"https://gitingest.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/gitingest.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/gitingest.com.ico\" class=\"has-avatar  has-avatar-before\"\u003egitingest\u003c/a\u003e web ui [[ thoughts-516 ]]\nfor quite awhile to serialize \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e repo into llm friendly text files.  This\ngives tools context about repos that are not in the training data so that it\nknows about it and how to use the code in the repo.  gitingest also has a\npython library [[ thoughts-517 ]]\u003c/p\u003e\n\u003cp\u003eI had a use case for a project not yet on git, and found yek.\u003c/p\u003e\n\u003ch2 id=\"installing-yek\"\u003eInstalling yek \u003ca href=\"#installing-yek\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTheir instructions tell you to curl to bash.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -fsSL https://bodo.run/yek.sh \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI don’t like curl to bash from random sites, so I have my own \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e\nversion of i.jpillora.com.  I like using this because it pulls from github and\nI trust github as a source for artifacts as good as the repo I am pulling\nfrom.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://i.jpillora.com/bodo-run/yek \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"using-yek\"\u003eUsing yek \u003ca href=\"#using-yek\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eyek\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003e/tmp/yek-output/yek-output-bb01e621.txt\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis will give you a link to a text file that you can add to many llm tools.\nThis happened so fast for me that I didn’t even believe that it worked\nproperly.\u003c/p\u003e\n\u003ch2 id=\"more-options\"\u003emore options \u003ca href=\"#more-options\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs with most clis, you can run \u003ccode\u003eyek --help\u003c/code\u003e to see the options available.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eyek --help\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI've been using [gitingest](https://gitingest.com/) web ui [[ thoughts-516 ]]\nfor quite awhile to serialize git repo into llm friendly text files.  This\ngives tools context about repos that are not in the training data so that it\nknows about it and how to use the code in the repo.  gitingest also has a\npython library [[ thoughts-517 ]]\n\nI had a use case for a project not yet on git, and found yek.\n\n## Installing yek\n\nTheir instructions tell you to curl to bash.\n\n``` bash\ncurl -fsSL https://bodo.run/yek.sh | bash\n```\n\nI don't like curl to bash from random sites, so I have my own self hosted\nversion of i.jpillora.com.  I like using this because it pulls from github and\nI trust github as a source for artifacts as good as the repo I am pulling\nfrom.\n\n``` bash\ncurl https://i.jpillora.com/bodo-run/yek | bash\n```\n\n## Using yek\n\n``` bash\nyek\n```\n\n\u003e /tmp/yek-output/yek-output-bb01e621.txt\n\nThis will give you a link to a text file that you can add to many llm tools.\nThis happened so fast for me that I didn't even believe that it worked\nproperly.\n\n## more options\n\nAs with most clis, you can run `yek --help` to see the options available.\n\n``` bash\nyek --help\n```\n",
      "summary": "I've been using gitingest web ui thoughts-516 for quite awhile to serialize git repo into llm friendly text files. This gives tools context about repos that...",
      "date_published": "2025-06-11T11:01:34Z",
      "date_modified": "2025-06-11T11:01:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm"
      ]
    },
    {
      "id": "https://waylonwalker.com/brightnessctl-adjust-screen-brightness/",
      "url": "https://waylonwalker.com/brightnessctl-adjust-screen-brightness/",
      "title": "brightnessctl adjust screen brightness",
      "content_html": "\u003cp\u003eToday I discovered \u003ccode\u003ebrightnessctl\u003c/code\u003e to adjust the screen brightness on my\nAwesomeWM machine.  Its a command line utility that you can use to adjust the\nbrightness of your screen.  A command line interface like this gives you the\nability to bind keys with something like [[xbindkeys]] or your window manager\nconfiguration.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo apt install brightnessctl\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S brightnessctl\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow that you have it installed you can use it to adjust the brightness of your\nscreen, this worked particularly well for my laptop screen, I don’t think this\nworks for monitors, in my experience they are usually controlled by the built\nin osd.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Increase brightness by 10%\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebrightnessctl \u003cspan class=\"nb\"\u003eset\u003c/span\u003e +10%\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Decrease brightness by 10%\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebrightnessctl \u003cspan class=\"nb\"\u003eset\u003c/span\u003e 10%-\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Set brightness to 50%\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebrightnessctl \u003cspan class=\"nb\"\u003eset\u003c/span\u003e 50%\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Set brightness to 100%\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebrightnessctl \u003cspan class=\"nb\"\u003eset\u003c/span\u003e 100%\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eon my machine I had to use `sudo` to run the command, otherwise I got the following error:\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eCan\u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003et modify brightness: Permission denied\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eYou should run this program with root privileges.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAlternatively, get write permissions \u003cspan class=\"k\"\u003efor\u003c/span\u003e device files.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n",
      "content_text": "\nToday I discovered `brightnessctl` to adjust the screen brightness on my\nAwesomeWM machine.  Its a command line utility that you can use to adjust the\nbrightness of your screen.  A command line interface like this gives you the\nability to bind keys with something like [[xbindkeys]] or your window manager\nconfiguration.\n\n\n``` bash\nsudo apt install brightnessctl\n# or \nparu -S brightnessctl\n```\n\nNow that you have it installed you can use it to adjust the brightness of your\nscreen, this worked particularly well for my laptop screen, I don't think this\nworks for monitors, in my experience they are usually controlled by the built\nin osd.\n\n``` bash\n# Increase brightness by 10%\nbrightnessctl set +10%\n# Decrease brightness by 10%\nbrightnessctl set 10%-\n# Set brightness to 50%\nbrightnessctl set 50%\n# Set brightness to 100%\nbrightnessctl set 100%\n```\n\n!!! note\n    on my machine I had to use `sudo` to run the command, otherwise I got the following error:\n\n    ``` bash\n    Can't modify brightness: Permission denied\n\n    You should run this program with root privileges.\n    Alternatively, get write permissions for device files.\n    ```\n",
      "summary": "Today I discovered to adjust the screen brightness on my AwesomeWM machine. Its a command line utility that you can use to adjust the brightness of your...",
      "date_published": "2025-06-11T08:42:36Z",
      "date_modified": "2025-06-11T08:42:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-684/",
      "url": "https://waylonwalker.com/thought-684/",
      "title": "💭 Think less, ship more",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/think-less/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cassidoo.co/og-image/think-less.png\" alt=\"Think less, ship more — I do too much thinking about what I want to make, and not enough actually making the thing.\" loading=\"lazy\"/ data-glightbox=\"description: Think less, ship more — I do too much thinking about what I want to make, and not enough actually making the thing.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThink less, ship more\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI do too much thinking about what I want to make, and not enough actually making the thing.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI thin a lot of us have this issues, \u003cstrong\u003eespecially\u003c/strong\u003e on side projects.  At work therre are expectations, jira tickets and so on, keeping you shipping.  I think there is something to be said about getting that quick and dirty POC to the right group of people early for feedback before you add redis caching, kubernetes, auto scaling, disruption budget, distributed nodes, high availability, backups, disaster recovery.  At work you kinda  have to have the right person to shoot ideas by that can understand that you probably need some of these complex things for your app and it will take time to get right.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/think-less/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cassidoo.co/og-image/think-less.png\" alt=\"Think less, ship more — I do too much thinking about what I want to make, and not enough actually making the thing.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThink less, ship more\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI do too much thinking about what I want to make, and not enough actually making the thing.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI thin a lot of us have this issues, **especially** on side projects.  At work therre are expectations, jira tickets and so on, keeping you shipping.  I think there is something to be said about getting that quick and dirty POC to the right group of people early for feedback before you add redis caching, kubernetes, auto scaling, disruption budget, distributed nodes, high availability, backups, disaster recovery.  At work you kinda  have to have the right person to shoot ideas by that can understand that you probably need some of these complex things for your app and it will take time to get right.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://cassidoo.co/post/think-less/",
      "date_published": "2025-06-10T13:02:28Z",
      "date_modified": "2025-06-10T13:02:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-683/",
      "url": "https://waylonwalker.com/thought-683/",
      "title": "💭 robinroy03/videoeditor: Video Editor Application using React, ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/robinroy03/videoeditor\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://repository-images.githubusercontent.com/988575614/c172efea-e6db-4922-b695-abaddc42b4c9\" alt=\"GitHub - trykimu/videoeditor: Your Creative Copilot for Video Editing — Your Creative Copilot for Video Editing. Contribute to trykimu/videoeditor development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - trykimu/videoeditor: Your Creative Copilot for Video Editing — Your Creative Copilot for Video Editing. Contribute to trykimu/videoeditor development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - trykimu/videoeditor: Your Creative Copilot for Video Editing\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eYour Creative Copilot for Video Editing. Contribute to trykimu/videoeditor development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI would love to have a browser based video editor I could throw on a server and do quick edits from anywhere.  I tried to get this one to work and struggled to get front end to send api requets to backend.  I think the root of it was their redis wants to run on 80, this caused a permission error so I tried to run 8880:80, but redis was still unable to start due to a config permission error.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/robinroy03/videoeditor\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://repository-images.githubusercontent.com/988575614/c172efea-e6db-4922-b695-abaddc42b4c9\" alt=\"GitHub - trykimu/videoeditor: Your Creative Copilot for Video Editing — Your Creative Copilot for Video Editing. Contribute to trykimu/videoeditor development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - trykimu/videoeditor: Your Creative Copilot for Video Editing\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eYour Creative Copilot for Video Editing. Contribute to trykimu/videoeditor development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI would love to have a browser based video editor I could throw on a server and do quick edits from anywhere.  I tried to get this one to work and struggled to get front end to send api requets to backend.  I think the root of it was their redis wants to run on 80, this caused a permission error so I tried to run 8880:80, but redis was still unable to start due to a config permission error.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/robinroy03/videoeditor",
      "date_published": "2025-06-10T02:31:25Z",
      "date_modified": "2025-06-10T02:31:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "self-hosted",
        "thought",
        "video-editor"
      ]
    },
    {
      "id": "https://waylonwalker.com/trykimu-videoeditor/",
      "url": "https://waylonwalker.com/trykimu-videoeditor/",
      "title": "⭐ trykimu videoeditor",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/trykimu/videoeditor\" 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\"\u003evideoeditor\u003c/a\u003e from \u003ca href=\"https://github.com/trykimu\" 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\"\u003etrykimu\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eYour Creative Copilot for Video Editing\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [videoeditor](https://github.com/trykimu/videoeditor) from [trykimu](https://github.com/trykimu).\n\nYour Creative Copilot for Video Editing\n",
      "summary": "I'm impressed by videoeditor from trykimu.",
      "date_published": "2025-06-10T02:27:48Z",
      "date_modified": "2025-06-10T02:27:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/robinroy03-videoeditor/",
      "url": "https://waylonwalker.com/robinroy03-videoeditor/",
      "title": "⭐ robinroy03 videoeditor",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/robinroy03/videoeditor\" 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\"\u003evideoeditor\u003c/a\u003e, created by \u003ca href=\"https://github.com/robinroy03\" 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\"\u003erobinroy03\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eVideo Editor Application using React, Remotion \u0026amp; TypeScript.\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [videoeditor](https://github.com/robinroy03/videoeditor), created by [robinroy03](https://github.com/robinroy03).\n\nVideo Editor Application using React, Remotion \u0026 TypeScript.\n",
      "summary": "If you're into interesting projects, don't miss out on videoeditor, created by robinroy03.",
      "date_published": "2025-06-10T02:27:48Z",
      "date_modified": "2025-06-10T02:27:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-681/",
      "url": "https://waylonwalker.com/thought-681/",
      "title": "💭 Taming file zoos: Data science with DuckDB database files - Al...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Yq-hxgysWLQ\" title=\"Taming file zoos: Data science with DuckDB database files - Alex Monahan\" playlabel=\"Play: Taming file zoos: Data science with DuckDB database files - Alex Monahan\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThe ability to query s3 buckets so seamless looks like such a pleasure to work with if you have a use case for that.  Kedro catalog takes care of this most of the time for me, but I wonder if there are some cross project searching use cases I might find for this.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Yq-hxgysWLQ\" title=\"Taming file zoos: Data science with DuckDB database files - Alex Monahan\" playlabel=\"Play: Taming file zoos: Data science with DuckDB database files - Alex Monahan\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThe ability to query s3 buckets so seamless looks like such a pleasure to work with if you have a use case for that.  Kedro catalog takes care of this most of the time for me, but I wonder if there are some cross project searching use cases I might find for this.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=Yq-hxgysWLQ",
      "date_published": "2025-06-09T13:31:30Z",
      "date_modified": "2025-06-09T13:31:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-677/",
      "url": "https://waylonwalker.com/thought-677/",
      "title": "💭 PocketCal Build Log",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/pocketcal-build-log/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cassidoo.co/og-image/pocketcal-build-log.png\" alt=\"PocketCal Build Log — I made a date-sharing app called PocketCal. Here\" loading=\"lazy\"/ data-glightbox=\"description: PocketCal Build Log — I made a date-sharing app called PocketCal. Here\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePocketCal Build Log\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI made a date-sharing app called PocketCal. Here\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI love this idea of tiny useful apps for yourself.  In fact I’m working on a project to built out \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\" data-preview=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\"\u003etinyapps\u003c/a\u003e for myself to replace my common needs.  I absolutely love that all of the state is stored in the url bar, nothing is stored server side.  As much as I love to hate js, I really appreciate that things like this can be built to just live on the web, be accessible from anywhere, and live practically forever as they require such little hosting demand.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/pocketcal-build-log/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cassidoo.co/og-image/pocketcal-build-log.png\" alt=\"PocketCal Build Log — I made a date-sharing app called PocketCal. Here\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePocketCal Build Log\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI made a date-sharing app called PocketCal. Here\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI love this idea of tiny useful apps for yourself.  In fact I'm working on a project to built out \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\"\u003etinyapps\u003c/a\u003e for myself to replace my common needs.  I absolutely love that all of the state is stored in the url bar, nothing is stored server side.  As much as I love to hate js, I really appreciate that things like this can be built to just live on the web, be accessible from anywhere, and live practically forever as they require such little hosting demand.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://cassidoo.co/post/pocketcal-build-log/",
      "date_published": "2025-06-08T00:29:14Z",
      "date_modified": "2025-06-08T00:29:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-675/",
      "url": "https://waylonwalker.com/thought-675/",
      "title": "💭 numtide/treefmt: one CLI to format your repo [maintainers=@zim...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/numtide/treefmt\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/784b3c4398d8537aa4ac33ca18d17cf922259fe928b70f67bd12b0d991f122ce/numtide/treefmt\" alt=\"GitHub - numtide/treefmt: the formatter multiplexer [maintainers=@zimbatm,@brianmcgee] — the formatter multiplexer [maintainers=@zimbatm,@brianmcgee] - numtide/treefmt\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - numtide/treefmt: the formatter multiplexer [maintainers=@zimbatm,@brianmcgee] — the formatter multiplexer [maintainers=@zimbatm,@brianmcgee] - numtide/treefmt\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - numtide/treefmt: the formatter multiplexer [maintainers=@zimbatm,@brianmcgee]\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ethe formatter multiplexer [maintainers=@zimbatm,@brianmcgee] - numtide/treefmt\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis looks like a very useful formatting tool to keep in the back of my mind.  I do a lot of python and our tool tends to be pre-commit, named after the \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e hook pre-commit.  It specifies a bunch of tools to run, you can run them in ci, manually, and opt into doing it before commit.  I like the simplicity of this one not needing a whole ecosystem, but rather just leveraging the cli commands from those tools.  This would probably be something that would get in the way of setup for new devs and not something I would throw on one project by itself, its another thing for everyone to figure out how to install and run on every platform, I’m sure its not hard, but being on python teams pre-commit just fits in.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/numtide/treefmt\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/784b3c4398d8537aa4ac33ca18d17cf922259fe928b70f67bd12b0d991f122ce/numtide/treefmt\" alt=\"GitHub - numtide/treefmt: the formatter multiplexer [maintainers=@zimbatm,@brianmcgee] — the formatter multiplexer [maintainers=@zimbatm,@brianmcgee] - numtide/treefmt\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - numtide/treefmt: the formatter multiplexer [maintainers=@zimbatm,@brianmcgee]\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ethe formatter multiplexer [maintainers=@zimbatm,@brianmcgee] - numtide/treefmt\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis looks like a very useful formatting tool to keep in the back of my mind.  I do a lot of python and our tool tends to be pre-commit, named after the git hook pre-commit.  It specifies a bunch of tools to run, you can run them in ci, manually, and opt into doing it before commit.  I like the simplicity of this one not needing a whole ecosystem, but rather just leveraging the cli commands from those tools.  This would probably be something that would get in the way of setup for new devs and not something I would throw on one project by itself, its another thing for everyone to figure out how to install and run on every platform, I'm sure its not hard, but being on python teams pre-commit just fits in.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/numtide/treefmt",
      "date_published": "2025-06-08T00:20:41Z",
      "date_modified": "2025-06-08T00:20:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-674/",
      "url": "https://waylonwalker.com/thought-674/",
      "title": "💭 Keynote Speaker - Cory Doctorow - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ydVmzg_SJLw\" title=\"Keynote Speaker - Cory Doctorow\" playlabel=\"Play: Keynote Speaker - Cory Doctorow\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is one of the greatest pycon keynotes I’ve ever seen, bookmarking this to come back and leave better thoughts on later.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"ydVmzg_SJLw\" title=\"Keynote Speaker - Cory Doctorow\" playlabel=\"Play: Keynote Speaker - Cory Doctorow\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is one of the greatest pycon keynotes I've ever seen, bookmarking this to come back and leave better thoughts on later.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=ydVmzg_SJLw",
      "date_published": "2025-06-07T23:00:50Z",
      "date_modified": "2025-06-07T23:00:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-673/",
      "url": "https://waylonwalker.com/thought-673/",
      "title": "💭 Dopamine Driven Development - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"AWZ9AgjPfwo\" title=\"Dopamine Driven Development\" playlabel=\"Play: Dopamine Driven Development\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eFocus on the joy, not the suck.  Nothing you do in life will be absolute pure joy with no downsides forever, life does not work that way, your brain does not look that way.  Look at anyone who ever got massive billion dollar payouts for something like minecraft and how much their life is not glorious when they have nothing to really look forward to.\u003c/p\u003e\n\u003cp\u003ePrime talks about it in almost a cliche way, every boring ass task is an opportunity to grow.  This is so real though, if you look at every task ask a shit you gotta do to check that jira ticket off and make bossy lady not scream at you its going to be a hell.  If you rather look at it as opportunities to implement new features in new ways or learn something to better yourself and watch yourself grow you are going to take a big dopamine hit.  I think prime talks about this in the sense of larger projects.  He as talked about his experience being much less of a daily standup, but more of a ok we got three months to figure this out lets go boys.  When you are stuck in that daily jira grind it’s harder to see that larger picture of the learning and growing you are doing over the course of 3 or 6 months.\u003c/p\u003e\n\u003cp\u003eTimestamped to the part of the video that really dives into gratitude and finding the joy in the work that you have to do on purpose, but the whole vid is fire.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"AWZ9AgjPfwo\" title=\"Dopamine Driven Development\" playlabel=\"Play: Dopamine Driven Development\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nFocus on the joy, not the suck.  Nothing you do in life will be absolute pure joy with no downsides forever, life does not work that way, your brain does not look that way.  Look at anyone who ever got massive billion dollar payouts for something like minecraft and how much their life is not glorious when they have nothing to really look forward to.\n\nPrime talks about it in almost a cliche way, every boring ass task is an opportunity to grow.  This is so real though, if you look at every task ask a shit you gotta do to check that jira ticket off and make bossy lady not scream at you its going to be a hell.  If you rather look at it as opportunities to implement new features in new ways or learn something to better yourself and watch yourself grow you are going to take a big dopamine hit.  I think prime talks about this in the sense of larger projects.  He as talked about his experience being much less of a daily standup, but more of a ok we got three months to figure this out lets go boys.  When you are stuck in that daily jira grind it's harder to see that larger picture of the learning and growing you are doing over the course of 3 or 6 months.\n\nTimestamped to the part of the video that really dives into gratitude and finding the joy in the work that you have to do on purpose, but the whole vid is fire.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=AWZ9AgjPfwo\u0026t=654s",
      "date_published": "2025-06-07T22:59:04Z",
      "date_modified": "2025-06-07T22:59:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-672/",
      "url": "https://waylonwalker.com/thought-672/",
      "title": "💭 DHH IS RIGHT ABOUT EVERYTHING (Again)? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"EIBxRMH4bvs\" title=\"DHH IS RIGHT ABOUT EVERYTHING (Again)?\" playlabel=\"Play: DHH IS RIGHT ABOUT EVERYTHING (Again)?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eShould I go to college?  Was my education worth it? Should I keep going.  A question that comes in all too often accross most industries that require some level of education.  DHH has such great takes on it, some I had never fully thought about.  He starts out with should we have people study niche topics (using Russian Poetry as an example).  Yes the world deserves people who can make their life works out of something that brings them and many other so much joy, but no you probably shouldn’t go 100k’s into debt to do it.  Should I get a software engineering degree, or become a doctor also have similar answers, it needs to be somewhat justified and not outrageous as has become the norm.\u003c/p\u003e\n\u003cp\u003eWe used to listen in to Dave Ramsey on long car rides and he would have people call in and say, they went half a million dollars into debt to become a dentist, only to discover they did not want to do dentistry.  At this point it’s too bad, you gotta suck it up and pay that off with something that makes some serious cash, and the only skill you probably got that can bring in that level of cash is … dentistry.\u003c/p\u003e\n\u003cp\u003eThey dive into the college experience, learning to have adult debates with classmates about which direction a project should go or how to complete it.  Great stuff!\u003c/p\u003e\n\u003cp\u003eSomething I had never put thoughts to is how do you feel when class is cancelled or an assignment is removed.  Are you excited to “not have to do it”?  I’d bet that most people do.  That’s probably a good sign that you are there for the wrong reasons.  What other industry do you pay a f*** ton of money for a product and be like nah ill just take the receipt, you keep the thing.\u003c/p\u003e\n\u003cp\u003eThis all just gets your foot in the door.  If you spent none of that time learning it will become apparent really fast and you will not climb the ladder.  Yes climbing the corp ladder is cliche, but at some point you probably want paid more and get opportunity to make more decisions.  And if it turns out you really suck, you’re going to find yourself looking for a new job with no skill and a big pile of student debt sitting behind you.\u003c/p\u003e\n\u003cp\u003eStudent debt is probably one of the biggest issues of our generation that only appears to be getting worse, everything signals your need to go to college, presige is important.  It feels like the other side is filled with glory lots of money and you will have all that debt paid off in no time.  I get it when you’re 18 and you see 50k or 100k in student debt, but 80k or 150k salaries on the other side its like damn I make nothing right now I’ll have that paid off in no time.  Then you get out and realize everything costs serious money, housing, kids, cars, broken AC units, and you cant pay off 50k in a year and a half making 80k.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"EIBxRMH4bvs\" title=\"DHH IS RIGHT ABOUT EVERYTHING (Again)?\" playlabel=\"Play: DHH IS RIGHT ABOUT EVERYTHING (Again)?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nShould I go to college?  Was my education worth it? Should I keep going.  A question that comes in all too often accross most industries that require some level of education.  DHH has such great takes on it, some I had never fully thought about.  He starts out with should we have people study niche topics (using Russian Poetry as an example).  Yes the world deserves people who can make their life works out of something that brings them and many other so much joy, but no you probably shouldn't go 100k's into debt to do it.  Should I get a software engineering degree, or become a doctor also have similar answers, it needs to be somewhat justified and not outrageous as has become the norm.\n\nWe used to listen in to Dave Ramsey on long car rides and he would have people call in and say, they went half a million dollars into debt to become a dentist, only to discover they did not want to do dentistry.  At this point it's too bad, you gotta suck it up and pay that off with something that makes some serious cash, and the only skill you probably got that can bring in that level of cash is ... dentistry.\n\nThey dive into the college experience, learning to have adult debates with classmates about which direction a project should go or how to complete it.  Great stuff!\n\nSomething I had never put thoughts to is how do you feel when class is cancelled or an assignment is removed.  Are you excited to \"not have to do it\"?  I'd bet that most people do.  That's probably a good sign that you are there for the wrong reasons.  What other industry do you pay a f*** ton of money for a product and be like nah ill just take the receipt, you keep the thing.\n\nThis all just gets your foot in the door.  If you spent none of that time learning it will become apparent really fast and you will not climb the ladder.  Yes climbing the corp ladder is cliche, but at some point you probably want paid more and get opportunity to make more decisions.  And if it turns out you really suck, you're going to find yourself looking for a new job with no skill and a big pile of student debt sitting behind you.\n\nStudent debt is probably one of the biggest issues of our generation that only appears to be getting worse, everything signals your need to go to college, presige is important.  It feels like the other side is filled with glory lots of money and you will have all that debt paid off in no time.  I get it when you're 18 and you see 50k or 100k in student debt, but 80k or 150k salaries on the other side its like damn I make nothing right now I'll have that paid off in no time.  Then you get out and realize everything costs serious money, housing, kids, cars, broken AC units, and you cant pay off 50k in a year and a half making 80k.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=EIBxRMH4bvs",
      "date_published": "2025-06-07T22:49:47Z",
      "date_modified": "2025-06-07T22:49:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-671/",
      "url": "https://waylonwalker.com/thought-671/",
      "title": "💭 WebTUI",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://webtui.ironclad.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://webtui.ironclad.sh/cover.png\" alt=\"WebTUI — Modular CSS Library that brings the beauty of Terminal UIs to the browser\" loading=\"lazy\"/ data-glightbox=\"description: WebTUI — Modular CSS Library that brings the beauty of Terminal UIs to the browser\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWebTUI\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eModular CSS Library that brings the beauty of Terminal UIs to the browser\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ewebtui.ironclad.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ewebtui, looks like a pretty sick design aesthetic.  I like the keyboard driven nature of it, the look and feel is on point to a terminal interface, sadly it looks like it is not a 2 way street, you don’t automatically get a tui our of your website, just one that looks the part in the browser.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://webtui.ironclad.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://webtui.ironclad.sh/cover.png\" alt=\"WebTUI — Modular CSS Library that brings the beauty of Terminal UIs to the browser\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWebTUI\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eModular CSS Library that brings the beauty of Terminal UIs to the browser\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ewebtui.ironclad.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nwebtui, looks like a pretty sick design aesthetic.  I like the keyboard driven nature of it, the look and feel is on point to a terminal interface, sadly it looks like it is not a 2 way street, you don't automatically get a tui our of your website, just one that looks the part in the browser.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://webtui.ironclad.sh/",
      "date_published": "2025-06-07T22:32:42Z",
      "date_modified": "2025-06-07T22:32:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-668/",
      "url": "https://waylonwalker.com/thought-668/",
      "title": "💭 Arch Wizard Brodie Robertson vs My Mac Life - Will He Convert ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bAmJQuX4-ak\" title=\"Arch Wizard Brodie Robertson vs My Mac Life - Will He Convert Me?\" playlabel=\"Play: Arch Wizard Brodie Robertson vs My Mac Life - Will He Convert Me?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve never heard of niri, or a scrolling window manager, it looks quite interesting.  I think tiling window manager misses out on named sessions and hotkey straight to tmux sessions, Brodi mentions not using tmux right before this segment.  Niri looks quite interesting, but looks like it suffers specificity.  maybe there are other tools that allow me to jump straight to something like brave, or steam, but I don’t see how I could jump to a specific terminal.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"bAmJQuX4-ak\" title=\"Arch Wizard Brodie Robertson vs My Mac Life - Will He Convert Me?\" playlabel=\"Play: Arch Wizard Brodie Robertson vs My Mac Life - Will He Convert Me?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI've never heard of niri, or a scrolling window manager, it looks quite interesting.  I think tiling window manager misses out on named sessions and hotkey straight to tmux sessions, Brodi mentions not using tmux right before this segment.  Niri looks quite interesting, but looks like it suffers specificity.  maybe there are other tools that allow me to jump straight to something like brave, or steam, but I don't see how I could jump to a specific terminal.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=bAmJQuX4-ak\u0026t=1684s",
      "date_published": "2025-06-07T01:05:25Z",
      "date_modified": "2025-06-07T01:05:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/niri-wm-niri/",
      "url": "https://waylonwalker.com/niri-wm-niri/",
      "title": "⭐ niri-wm niri",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/niri-wm/niri\" 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\"\u003eniri\u003c/a\u003e by \u003ca href=\"https://github.com/niri-wm\" 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\"\u003eniri-wm\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eA scrollable-tiling Wayland compositor.\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [niri](https://github.com/niri-wm/niri) by [niri-wm](https://github.com/niri-wm), and it's truly impressive.\n\nA scrollable-tiling Wayland compositor.\n",
      "summary": "I recently discovered niri by niri-wm, and it's truly impressive.",
      "date_published": "2025-06-07T01:03:02Z",
      "date_modified": "2025-06-07T01:03:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/yalter-niri/",
      "url": "https://waylonwalker.com/yalter-niri/",
      "title": "⭐ YaLTeR niri",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/YaLTeR/niri\" 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\"\u003eniri\u003c/a\u003e from \u003ca href=\"https://github.com/YaLTeR\" 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\"\u003eYaLTeR\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA scrollable-tiling Wayland compositor.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [niri](https://github.com/YaLTeR/niri) from [YaLTeR](https://github.com/YaLTeR).\n\nA scrollable-tiling Wayland compositor.\n",
      "summary": "I'm impressed by niri from YaLTeR.",
      "date_published": "2025-06-07T01:03:02Z",
      "date_modified": "2025-06-07T01:03:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-667/",
      "url": "https://waylonwalker.com/thought-667/",
      "title": "💭 Backups interrupted by full disk usage",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/backups-interrupted-by-full-disk-usage/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"Backups interrupted by full disk usage | Nic Payne — I just got a message from HCIO that my primary backup script is late... This\nhappens every now and then but I decided to check on it... Quickly `ssh` in and\nI n\" loading=\"lazy\"/ data-glightbox=\"description: Backups interrupted by full disk usage | Nic Payne — I just got a message from HCIO that my primary backup script is late... This\nhappens every now and then but I decided to check on it... Quickly `ssh` in and\nI n\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBackups interrupted by full disk usage | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI just got a message from HCIO that my primary backup script is late... This\nhappens every now and then but I decided to check on it... Quickly `ssh` in and\nI n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m way behind on my notification game and need to pick it up. maybe I’ll look into hcio as well.  maybe I’ll look into something that goes straight to signal or just get things working on ntfy.   An 80GB log file is massive and the kind of thing id like to see notifications more.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/backups-interrupted-by-full-disk-usage/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"Backups interrupted by full disk usage | Nic Payne — I just got a message from HCIO that my primary backup script is late... This\nhappens every now and then but I decided to check on it... Quickly `ssh` in and\nI n\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBackups interrupted by full disk usage | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI just got a message from HCIO that my primary backup script is late... This\nhappens every now and then but I decided to check on it... Quickly `ssh` in and\nI n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm way behind on my notification game and need to pick it up. maybe I'll look into hcio as well.  maybe I'll look into something that goes straight to signal or just get things working on ntfy.   An 80GB log file is massive and the kind of thing id like to see notifications more.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/backups-interrupted-by-full-disk-usage/",
      "date_published": "2025-06-06T15:53:41Z",
      "date_modified": "2025-06-06T15:53:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-666/",
      "url": "https://waylonwalker.com/thought-666/",
      "title": "💭 Queso Notes",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/queso-notes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"Queso Notes | Nic Payne — It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee\" loading=\"lazy\"/ data-glightbox=\"description: Queso Notes | Nic Payne — It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eQueso Notes | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIt occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eTaking this as inspiration to do more non-tech on my blog, I’ve branched out into \u003ca href=\"/tags/gaming/\" class=\"wikilink\" data-title=\"Posts tagged: gaming\" data-description=\"All posts with the tag \u0026#34;gaming\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;gaming\u0026#34;\"\u003ePosts tagged: gaming\u003c/a\u003e, but need take it to the next step.  excited to watch \u003ca href=\"pype.dev\"\u003epype.dev\u003c/a\u003e evolve as well.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pype.dev/queso-notes/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.statically.io/gh/pypeaday/pype.dev/main/pages/media/og-02.png\" alt=\"Queso Notes | Nic Payne — It occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eQueso Notes | Nic Payne\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIt occured to me that this is my blog... I can write about whatever the heck I want! May 2025 Made 2 quesos very similar - they consisted of: 1.5 lbs ground bee\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003epype.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nTaking this as inspiration to do more non-tech on my blog, I've branched out into \u003ca href=\"/tags/gaming/\" class=\"wikilink\" data-title=\"Posts tagged: gaming\" data-description=\"All posts with the tag \u0026#34;gaming\u0026#34;\"\u003ePosts tagged: gaming\u003c/a\u003e, but need take it to the next step.  excited to watch [pype.dev](pype.dev) evolve as well.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pype.dev/queso-notes/",
      "date_published": "2025-06-06T15:50:43Z",
      "date_modified": "2025-06-06T15:50:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/zk-org-zk/",
      "url": "https://waylonwalker.com/zk-org-zk/",
      "title": "⭐ zk-org zk",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/zk-org/zk\" 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\"\u003ezk\u003c/a\u003e by \u003ca href=\"https://github.com/zk-org\" 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\"\u003ezk-org\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eA plain text note-taking assistant\u003c/p\u003e\n",
      "content_text": "\n[zk](https://github.com/zk-org/zk) by [zk-org](https://github.com/zk-org) is a game-changer in its space. Excited to see how it evolves.\n\nA plain text note-taking assistant\n",
      "summary": "zk by zk-org is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-06-06T01:22:44Z",
      "date_modified": "2025-06-06T01:22:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/get-alex-alex/",
      "url": "https://waylonwalker.com/get-alex-alex/",
      "title": "⭐ get-alex alex",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/get-alex/alex\" 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\"\u003ealex\u003c/a\u003e, created by \u003ca href=\"https://github.com/get-alex\" 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\"\u003eget-alex\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCatch insensitive, inconsiderate writing\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [alex](https://github.com/get-alex/alex), created by [get-alex](https://github.com/get-alex).\n\nCatch insensitive, inconsiderate writing\n",
      "summary": "If you're into interesting projects, don't miss out on alex, created by get-alex.",
      "date_published": "2025-06-06T01:18:53Z",
      "date_modified": "2025-06-06T01:18:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/lukas-reineke-cbfmt/",
      "url": "https://waylonwalker.com/lukas-reineke-cbfmt/",
      "title": "⭐ lukas-reineke cbfmt",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/lukas-reineke/cbfmt\" 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\"\u003ecbfmt\u003c/a\u003e by \u003ca href=\"https://github.com/lukas-reineke\" 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\"\u003elukas-reineke\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA tool to format codeblocks inside markdown and org documents.\u003c/p\u003e\n",
      "content_text": "\nThe work on [cbfmt](https://github.com/lukas-reineke/cbfmt) by [lukas-reineke](https://github.com/lukas-reineke).\n\nA tool to format codeblocks inside markdown and org documents.\n",
      "summary": "The work on cbfmt by lukas-reineke.",
      "date_published": "2025-06-06T01:18:47Z",
      "date_modified": "2025-06-06T01:18:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/feel-ix-343-markdown-oxide/",
      "url": "https://waylonwalker.com/feel-ix-343-markdown-oxide/",
      "title": "⭐ Feel-ix-343 markdown-oxide",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/Feel-ix-343\" 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\"\u003eFeel-ix-343\u003c/a\u003e and their project \u003ca href=\"https://github.com/Feel-ix-343/markdown-oxide\" 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\"\u003emarkdown-oxide\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003ePKM Markdown Language Server\u003c/p\u003e\n",
      "content_text": "\nCheck out [Feel-ix-343](https://github.com/Feel-ix-343) and their project [markdown-oxide](https://github.com/Feel-ix-343/markdown-oxide).\n\nPKM Markdown Language Server\n",
      "summary": "Check out Feel-ix-343 and their project markdown-oxide.",
      "date_published": "2025-06-06T01:18:37Z",
      "date_modified": "2025-06-06T01:18:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/hougesen-mdsf/",
      "url": "https://waylonwalker.com/hougesen-mdsf/",
      "title": "⭐ hougesen mdsf",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/hougesen\" 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\"\u003ehougesen’s\u003c/a\u003e project \u003ca href=\"https://github.com/hougesen/mdsf\" 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\"\u003emdsf\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eFormat markdown code blocks using your favorite tools\u003c/p\u003e\n",
      "content_text": "\nI like [hougesen's](https://github.com/hougesen) project [mdsf](https://github.com/hougesen/mdsf).\n\nFormat markdown code blocks using your favorite tools\n",
      "summary": "I like hougesen's project mdsf.",
      "date_published": "2025-06-06T01:18:28Z",
      "date_modified": "2025-06-06T01:18:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/numtide-treefmt/",
      "url": "https://waylonwalker.com/numtide-treefmt/",
      "title": "⭐ numtide treefmt",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/numtide/treefmt\" 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\"\u003etreefmt\u003c/a\u003e by \u003ca href=\"https://github.com/numtide\" 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\"\u003enumtide\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eone CLI to format your repo [maintainers=@zimbatm,@brianmcgee]\u003c/p\u003e\n",
      "content_text": "\nThe work on [treefmt](https://github.com/numtide/treefmt) by [numtide](https://github.com/numtide).\n\none CLI to format your repo [maintainers=@zimbatm,@brianmcgee]\n",
      "summary": "The work on treefmt by numtide.",
      "date_published": "2025-06-06T01:18:23Z",
      "date_modified": "2025-06-06T01:18:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/rich-theme/",
      "url": "https://waylonwalker.com/rich-theme/",
      "title": "rich theme",
      "content_html": "\u003cp\u003eThe rich console is themeable, I’ve been a long time user of rich and had no\nIdea.  You can define your own theme keywords and use them just like you use\nnormal rich keywords in square brackets like\u003ccode\u003e\u0026#39;[bold red]\u0026#39;\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.console\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eConsole\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.theme\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eTheme\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003ecustom_theme\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eTheme\u003c/span\u003e\u003cspan class=\"p\"\u003e({\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;info\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;dim cyan\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;warning\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;magenta\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;danger\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;bold red\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econsole\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eConsole\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etheme\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ecustom_theme\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;This is information\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;info\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[warning]The pod bay doors are locked[/warning]\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Something terrible happened!\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;danger\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nThe rich console is themeable, I've been a long time user of rich and had no\nIdea.  You can define your own theme keywords and use them just like you use\nnormal rich keywords in square brackets like`'[bold red]'`.\n\n``` python\nfrom rich.console import Console\nfrom rich.theme import Theme\ncustom_theme = Theme({\n    \"info\": \"dim cyan\",\n    \"warning\": \"magenta\",\n    \"danger\": \"bold red\"\n})\nconsole = Console(theme=custom_theme)\nconsole.print(\"This is information\", style=\"info\")\nconsole.print(\"[warning]The pod bay doors are locked[/warning]\")\nconsole.print(\"Something terrible happened!\", style=\"danger\")\n```\n",
      "summary": "The rich console is themeable, I've been a long time user of rich and had no Idea. You can define your own theme keywords and use them just like you use...",
      "date_published": "2025-06-05T20:37:10Z",
      "date_modified": "2025-06-05T20:37:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-665/",
      "url": "https://waylonwalker.com/thought-665/",
      "title": "💭 The ethics of README ads – Will McGugan – Will McGugan's essays",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://willmcgugan.github.io/the-ethics-of-readme-ads/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://willmcgugan.github.io/images/will2025.jpeg\" alt=\"The ethics of README ads — I’ve been considering accepting sponsorship again for my projects.\" loading=\"lazy\"/ data-glightbox=\"description: The ethics of README ads — I’ve been considering accepting sponsorship again for my projects.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe ethics of README ads\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI’ve been considering accepting sponsorship again for my projects.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWill McGugan · willmcgugan.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve long avoided running ads on my blog for the same reason.  For a few months I ran an ad above the fold.  It was a “Your Ad Here” kind of thing, and in the messaging I was looking for content relevant to my content, not google driven ads. This resulted in nothing, no hits, not a one.  I’m kinda with Will on this one beer money is not worth degrading the project for.  I seriously thought some of the big projects with a moderate level of success got a good cut for these sponsorships.  Some of the companies are big companies, like how do they even go through meetings and decide who gets beer money without spending more than that in decision making resources.  Maybe they have a guy with more autonomy than I would expect.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://willmcgugan.github.io/the-ethics-of-readme-ads/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://willmcgugan.github.io/images/will2025.jpeg\" alt=\"The ethics of README ads — I’ve been considering accepting sponsorship again for my projects.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe ethics of README ads\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI’ve been considering accepting sponsorship again for my projects.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWill McGugan \u0026middot; willmcgugan.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI've long avoided running ads on my blog for the same reason.  For a few months I ran an ad above the fold.  It was a \"Your Ad Here\" kind of thing, and in the messaging I was looking for content relevant to my content, not google driven ads. This resulted in nothing, no hits, not a one.  I'm kinda with Will on this one beer money is not worth degrading the project for.  I seriously thought some of the big projects with a moderate level of success got a good cut for these sponsorships.  Some of the companies are big companies, like how do they even go through meetings and decide who gets beer money without spending more than that in decision making resources.  Maybe they have a guy with more autonomy than I would expect.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://willmcgugan.github.io/the-ethics-of-readme-ads/",
      "date_published": "2025-06-05T14:49:09Z",
      "date_modified": "2025-06-05T14:49:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "oss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-664/",
      "url": "https://waylonwalker.com/thought-664/",
      "title": "💭 minio/minio Tags | Docker Hub",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/minio/minio/tags?name=RELEASE.2025-04-08\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hub.docker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hub.docker.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eminio/minio - Docker Image\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehub.docker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eBrowsing for the minio tag that I have running right now I discovered that you can do \u003ccode\u003eminio --version\u003c/code\u003e and you get the same version that matches the docker tag, this is super convenient and helpful.  I also notice that they use timestamped version numbers.  I kinda dont mind this.  It feels easy to understand how far behind it is. I really appreciate that the version in the container matches the version inside the container.\u003c/p\u003e\n\u003cp\u003eIt’s not as pretty or flexible as semver, it does not communicate trees of majors and minors, but how often do we continue supporting/patching older majors and minors, in my experience only really big teams or teams with sufficient motivation are doing this.\u003c/p\u003e\n\u003cp\u003efood for thought.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hub.docker.com/r/minio/minio/tags?name=RELEASE.2025-04-08\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eminio/minio - Docker Image\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehub.docker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nBrowsing for the minio tag that I have running right now I discovered that you can do `minio --version` and you get the same version that matches the docker tag, this is super convenient and helpful.  I also notice that they use timestamped version numbers.  I kinda dont mind this.  It feels easy to understand how far behind it is. I really appreciate that the version in the container matches the version inside the container.\n\nIt's not as pretty or flexible as semver, it does not communicate trees of majors and minors, but how often do we continue supporting/patching older majors and minors, in my experience only really big teams or teams with sufficient motivation are doing this. \n\nfood for thought.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hub.docker.com/r/minio/minio/tags?name=RELEASE.2025-04-08",
      "date_published": "2025-06-04T13:58:40Z",
      "date_modified": "2025-06-04T13:58:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought",
        "versioning"
      ]
    },
    {
      "id": "https://waylonwalker.com/unset-multiple-environment-variables/",
      "url": "https://waylonwalker.com/unset-multiple-environment-variables/",
      "title": "unset multiple environment variables",
      "content_html": "\u003cp\u003eYou can unset multiple environment variables at once. I did not know this was a\nthing, its something that ended up happening organically on a call and asking\nsomeone to run \u003ccode\u003eunset\u003c/code\u003e.  They had never done it before and did not know how it\nworks, but did exactly as I said instead of what I meant.  I like this handy\nshortcut doing it in one line rather than each one individually, I will be\nusing this in the future. You might need this for something like\n\u003ca href=\"/running-aws-cli-commands-with-localstack/\" class=\"wikilink\" data-title=\"running aws cli commands with localstack\" data-description=\"Upon first running an cli command using localstack you might end up with the following error.\" data-date=\"2022-10-17\" data-preview=\"Upon first running an cli command using localstack you might end up with the following error.\"\u003erunning aws cli commands with localstack\u003c/a\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eunset\u003c/span\u003e AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\nYou can unset multiple environment variables at once. I did not know this was a\nthing, its something that ended up happening organically on a call and asking\nsomeone to run `unset`.  They had never done it before and did not know how it\nworks, but did exactly as I said instead of what I meant.  I like this handy\nshortcut doing it in one line rather than each one individually, I will be\nusing this in the future. You might need this for something like\n\u003ca href=\"/running-aws-cli-commands-with-localstack/\" class=\"wikilink\" data-title=\"running aws cli commands with localstack\" data-description=\"Upon first running an cli command using localstack you might end up with the following error.\" data-date=\"2022-10-17\"\u003erunning aws cli commands with localstack\u003c/a\u003e.\n\n``` bash\nunset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_DEFAULT_REGION\n```\n",
      "summary": "You can unset multiple environment variables at once. I did not know this was a thing, its something that ended up happening organically on a call and asking...",
      "date_published": "2025-06-03T11:21:11Z",
      "date_modified": "2025-06-03T11:21:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "cli",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-663/",
      "url": "https://waylonwalker.com/thought-663/",
      "title": "💭 The 1-3-1 Writing Technique",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"SIKo2lCzfhE\" title=\"The 1-3-1 Writing Technique\" playlabel=\"Play: The 1-3-1 Writing Technique\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI am going to start trying to employ this rhythm to my writing.  I’m not very sure how I feel about it, there is something almost too assertive about it.  It’s giving me a (i’m great and you should too) kind of vibe.   I want to become more assertive in my writing.\u003c/p\u003e\n\u003cp\u003eI’m giving this a shot and see what I learn, you might notice in my tils.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"SIKo2lCzfhE\" title=\"The 1-3-1 Writing Technique\" playlabel=\"Play: The 1-3-1 Writing Technique\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI am going to start trying to employ this rhythm to my writing.  I'm not very sure how I feel about it, there is something almost too assertive about it.  It's giving me a (i'm great and you should too) kind of vibe.   I want to become more assertive in my writing.\n\nI'm giving this a shot and see what I learn, you might notice in my tils.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/SIKo2lCzfhE",
      "date_published": "2025-06-02T20:07:09Z",
      "date_modified": "2025-06-02T20:07:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought",
        "writing"
      ]
    },
    {
      "id": "https://waylonwalker.com/i3lock-on-awesomewm/",
      "url": "https://waylonwalker.com/i3lock-on-awesomewm/",
      "title": "i3lock on AwesomeWM",
      "content_html": "\u003cp\u003e\u003ccode\u003ei3lock\u003c/code\u003e is a fantastic lockscreen for tiling window managers.\u003c/p\u003e\n\u003cp\u003eIf you are using a tiling window manager within a public space you need to add\na lockscreen.  I have one machine that I take with me to a public space.  Its\nsecure enough that I can leave it, but not secure enough that I want to leave\nit unlocked.  So when I need to leave it behind for the restroom I need to lock\nit up.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://man.archlinux.org/man/extra/i3lock/i3lock.1.en\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/man.archlinux.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/man.archlinux.org.ico\" class=\"has-avatar  has-avatar-before\"\u003earch wiki\u003c/a\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S i3lock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install i3lock\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow that you have \u003ccode\u003ei3lock\u003c/code\u003e installed lets lock that screen.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# lock it with a pure white flashbang\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei3lock\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# lock it with a black background\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei3lock -c \u003cspan class=\"m\"\u003e000000\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# lock it with a custom color\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei3lock -c 2e1330\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# lock it with a wallpaper\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei3lock -c \u003cspan class=\"m\"\u003e000000\u003c/span\u003e ~/Pictures/Wallpapers/mywallpaper.png\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou can use your window manager or something more generic like xbindkeys to set\na hotkey. This way you don’t have to open a terminal and type out the command\nevery time you leave your desk.  You can just press something like \u003ccode\u003eSUPER+L\u003c/code\u003e\nlike you would on other OS’s.\u003c/p\u003e\n\u003ch2 id=\"fancy\"\u003eFancy \u003ca href=\"#fancy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you like it a bit fancier, you can use \u003ccode\u003ei3lock-fancy\u003c/code\u003e, it can blur,\npixelate, and greyscale your current screen.  I did not really like this\nbecause you can still tell what is going on the screen.  It’s probably secure\nenough and looks better, but I went with regular \u003ccode\u003ei3lock\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S i3lock-fancy-git\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# or\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install i3lock-fancy\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n`i3lock` is a fantastic lockscreen for tiling window managers.\n\nIf you are using a tiling window manager within a public space you need to add\na lockscreen.  I have one machine that I take with me to a public space.  Its\nsecure enough that I can leave it, but not secure enough that I want to leave\nit unlocked.  So when I need to leave it behind for the restroom I need to lock\nit up.\n\n[arch wiki](https://man.archlinux.org/man/extra/i3lock/i3lock.1.en)\n\n``` bash\nparu -S i3lock\n# or\napt install i3lock\n```\n\nNow that you have `i3lock` installed lets lock that screen.\n\n``` bash\n# lock it with a pure white flashbang\ni3lock\n\n# lock it with a black background\ni3lock -c 000000\n\n# lock it with a custom color\ni3lock -c 2e1330\n\n# lock it with a wallpaper\ni3lock -c 000000 ~/Pictures/Wallpapers/mywallpaper.png\n```\n\nYou can use your window manager or something more generic like xbindkeys to set\na hotkey. This way you don't have to open a terminal and type out the command\nevery time you leave your desk.  You can just press something like `SUPER+L`\nlike you would on other OS's.\n\n## Fancy\n\nIf you like it a bit fancier, you can use `i3lock-fancy`, it can blur,\npixelate, and greyscale your current screen.  I did not really like this\nbecause you can still tell what is going on the screen.  It's probably secure\nenough and looks better, but I went with regular `i3lock`.\n\n``` bash\nparu -S i3lock-fancy-git\n# or\napt install i3lock-fancy\n```\n",
      "summary": "is a fantastic lockscreen for tiling window managers.",
      "date_published": "2025-06-02T14:40:56Z",
      "date_modified": "2025-06-02T14:40:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "awesomewm",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/kraft/",
      "url": "https://waylonwalker.com/kraft/",
      "title": "kraft",
      "content_html": "\u003cp\u003eKraft is the family gaming server that we started early 2025.\u003c/p\u003e\n\u003ch2 id=\"repopulating\"\u003eRepopulating \u003ca href=\"#repopulating\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eVillagers are really hard to get gong.  We have this huge villager tower on the\nserver, we nearly every bed filled, and one day we logged in and there were\nthree.  Not sure what happened until I witnessed one of them jump maybe 3\nblocks down and off himself.  I checked my last two villagers and they were\neach on one or two hearts left.  We almost lost every single villager on the\nserver.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5c160226-1018-4b07-b3a2-a50588006c17.mp4\" class=\"glightbox-link\" aria-label=\"villager-tower-needs-repopulated.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/5c160226-1018-4b07-b3a2-a50588006c17.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/5c160226-1018-4b07-b3a2-a50588006c17.mp4\" type=\"video/mp4\"\u003evillager-tower-needs-repopulated.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eTo get villagers to breed and make baby villagers you need beds, which we\nalready have, and food.  I gave my guys some food and they started making baby\nvillagers immediately, crisis averted as we start to get the first few fresh\nfull health villagers on the server.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9f618595-f998-4ba7-a925-92c282607a1b.mp4\" class=\"glightbox-link\" aria-label=\"repopulatingv4.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/9f618595-f998-4ba7-a925-92c282607a1b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/9f618595-f998-4ba7-a925-92c282607a1b.mp4\" type=\"video/mp4\"\u003erepopulatingv4.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nKraft is the family gaming server that we started early 2025.\n\n## Repopulating\n\nVillagers are really hard to get gong.  We have this huge villager tower on the\nserver, we nearly every bed filled, and one day we logged in and there were\nthree.  Not sure what happened until I witnessed one of them jump maybe 3\nblocks down and off himself.  I checked my last two villagers and they were\neach on one or two hearts left.  We almost lost every single villager on the\nserver.\n\n![villager-tower-needs-repopulated.mp4](https://dropper.waylonwalker.com/api/file/5c160226-1018-4b07-b3a2-a50588006c17.mp4)\n\nTo get villagers to breed and make baby villagers you need beds, which we\nalready have, and food.  I gave my guys some food and they started making baby\nvillagers immediately, crisis averted as we start to get the first few fresh\nfull health villagers on the server.\n\n![repopulatingv4.mp4](https://dropper.waylonwalker.com/api/file/9f618595-f998-4ba7-a925-92c282607a1b.mp4)\n",
      "summary": "Kraft is the family gaming server that we started early 2025.",
      "date_published": "2025-06-01T20:32:39Z",
      "date_modified": "2025-06-01T20:32:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-662/",
      "url": "https://waylonwalker.com/thought-662/",
      "title": "💭 From Prisma Founder to LiveStore: Building local-first apps wi...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"aKTbGIrkrLE\" title=\"From Prisma Founder to LiveStore: Building local-first apps with Johannes Schickling\" playlabel=\"Play: From Prisma Founder to LiveStore: Building local-first apps with Johannes Schickling\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis talk about live store really made me think about database transactions in a new way.  They are talking about live-store, and the complexity of distributed applications like a notes app with the ability to go offline and continue working.  The complexity of resyncing each instance is not simple, conflict resolution accross all the possible installs that may or may not even be online is a really hard problem.  They go deep on discussing an event driven paradigm that is driven off of a log of events and how this changes how we deal with databases.  Using the event log as the source of truth we can do things like forget about database migrations, we can replay all of the events onto a new database.  Its very interesting to rethink in terms of a log system that speaks in terms of understandable events (not table operations) as the source of truth for an application.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"aKTbGIrkrLE\" title=\"From Prisma Founder to LiveStore: Building local-first apps with Johannes Schickling\" playlabel=\"Play: From Prisma Founder to LiveStore: Building local-first apps with Johannes Schickling\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis talk about live store really made me think about database transactions in a new way.  They are talking about live-store, and the complexity of distributed applications like a notes app with the ability to go offline and continue working.  The complexity of resyncing each instance is not simple, conflict resolution accross all the possible installs that may or may not even be online is a really hard problem.  They go deep on discussing an event driven paradigm that is driven off of a log of events and how this changes how we deal with databases.  Using the event log as the source of truth we can do things like forget about database migrations, we can replay all of the events onto a new database.  Its very interesting to rethink in terms of a log system that speaks in terms of understandable events (not table operations) as the source of truth for an application.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=aKTbGIrkrLE\u0026t=3260s",
      "date_published": "2025-05-31T20:58:05Z",
      "date_modified": "2025-05-31T20:58:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "database",
        "event",
        "recommended",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/my-nvim-spellcheck-setup/",
      "url": "https://waylonwalker.com/my-nvim-spellcheck-setup/",
      "title": "my nvim spellcheck setup",
      "content_html": "\u003cp\u003eI’ve gone too long without a proper spellcheck setup in nvim.  I know it’s\nthere, I just don’t use it, I don’t have the right keybinds, like I do with\n\u003ca href=\"/vim-date/\" class=\"wikilink\" data-title=\"vim date\" data-description=\"When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering from normal mode puts you in command mode...\" data-date=\"2025-02-12\" data-preview=\"When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering from normal mode puts you in command mode...\"\u003evim date\u003c/a\u003e, to make it work, and its clunky.\u003c/p\u003e\n\u003ch2 id=\"default-keybinds\"\u003eDefault keybinds \u003ca href=\"#default-keybinds\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ez= show spell suggestions\u003c/li\u003e\n\u003cli\u003ezg add word to dictionary\u003c/li\u003e\n\u003cli\u003ezw remove word from dictionary\u003c/li\u003e\n\u003cli\u003e]s jump to next misspelled word\u003c/li\u003e\n\u003cli\u003e[s jump to previous misspelled word\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI really struggle with bracketed keybinds, they don’t flow for me.  I have to\nshift into it and hit two keys, you cant just pop through them with intent, it\nalways feels clunky to me.\u003c/p\u003e\n\u003ch2 id=\"custom-keybinds\"\u003eCustom keybinds \u003ca href=\"#custom-keybinds\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI barely use F-keys in my keymap so that was free game.  On my keyboard I have\nF1-F9 in a numpad layout on my right hand, so F4-F6 are home row, these are\nsuper easy to pop through and update.  I really refrain from using such high\nreal estate keys like this unless it’s for something good, and I do a lot of\nwriting in nvim, so fingers crossed I use the heck out of it.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cf4\u003e jump to next misspelled word\u003c/f4\u003e\u003c/li\u003e\n\u003cli\u003e\u003cf5\u003e jump to previous misspelled word\u003c/f5\u003e\u003c/li\u003e\n\u003cli\u003e\u003cf6\u003e show spell suggestions\u003c/f6\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI still use zg and zw, they seem fine to me.\u003c/p\u003e\n\u003ch2 id=\"the-setup\"\u003eThe Setup \u003ca href=\"#the-setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn my keymap.lua file I added these to the end, they are working so far and\nhopefully I use spellcheck more on my posts now that I’ve made it easy.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;n\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;f4\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;]s\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;n\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;f5\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;[s\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;n\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;f6\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;cmd\u0026gt;Telescope spell_suggest\u0026lt;cr\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"one-failure\"\u003eOne Failure \u003ca href=\"#one-failure\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI went down a long rabbit hole before this trying to populate the quickfix with\nspelling errors, I tried looking for existing plugins, tried to get ai to give\nme a good prototype to start with, and everything was over complicated.  So far\nI’m really liking this setup.\u003c/p\u003e\n",
      "content_text": "\nI've gone too long without a proper spellcheck setup in nvim.  I know it's\nthere, I just don't use it, I don't have the right keybinds, like I do with\n\u003ca href=\"/vim-date/\" class=\"wikilink\" data-title=\"vim date\" data-description=\"When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering from normal mode puts you in command mode...\" data-date=\"2025-02-12\"\u003evim date\u003c/a\u003e, to make it work, and its clunky.\n\n## Default keybinds\n\n* z= show spell suggestions\n* zg add word to dictionary\n* zw remove word from dictionary\n* ]s jump to next misspelled word\n* [s jump to previous misspelled word\n\nI really struggle with bracketed keybinds, they don't flow for me.  I have to\nshift into it and hit two keys, you cant just pop through them with intent, it\nalways feels clunky to me.\n\n## Custom keybinds\n\nI barely use F-keys in my keymap so that was free game.  On my keyboard I have\nF1-F9 in a numpad layout on my right hand, so F4-F6 are home row, these are\nsuper easy to pop through and update.  I really refrain from using such high\nreal estate keys like this unless it's for something good, and I do a lot of\nwriting in nvim, so fingers crossed I use the heck out of it.\n\n* \u003cF4\u003e jump to next misspelled word\n* \u003cF5\u003e jump to previous misspelled word\n* \u003cF6\u003e show spell suggestions\n\nI still use zg and zw, they seem fine to me.\n\n## The Setup\n\nIn my keymap.lua file I added these to the end, they are working so far and\nhopefully I use spellcheck more on my posts now that I've made it easy.\n\n``` lua\nset(\"n\", \"\u003cf4\u003e\", \"]s\")\nset(\"n\", \"\u003cf5\u003e\", \"[s\")\nset(\"n\", \"\u003cf6\u003e\", \"\u003ccmd\u003eTelescope spell_suggest\u003ccr\u003e\")\n```\n\n## One Failure\n\nI went down a long rabbit hole before this trying to populate the quickfix with\nspelling errors, I tried looking for existing plugins, tried to get ai to give\nme a good prototype to start with, and everything was over complicated.  So far\nI'm really liking this setup.\n",
      "summary": "I've gone too long without a proper spellcheck setup in nvim. I know it's there, I just don't use it, I don't have the right keybinds, like I do with...",
      "date_published": "2025-05-31T20:11:59Z",
      "date_modified": "2025-05-31T20:11:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-661/",
      "url": "https://waylonwalker.com/thought-661/",
      "title": "💭 DHH on X: \"You don't need a mentor. There's no secret sauce le...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1928856582588076171\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI need to find this podcast, was DHH this animated through the whole thing?\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYou don’t need a mentor. There’s no secret sauce left inside anyone’s head any more. It’s all been tapped, bottled, tweeted, and shared a million times. Sample some of that, but also guard your ignorance. You’ll lose it soon enough.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eIt takes work, one on one hand holding is a shortcut.  Sometimes one that we need.  Sometimes we need to level up quick, hence why your job might pair you up with someone for the first few months, but it is not something you need, you can figure shit out on your own with hard work.  These days we have things like gippity to bounce ideas off, and you can generally get the sense of the direction the average of the internet it was trained on.  Always add your own experience and make a choice for yourself.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1928856582588076171\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI need to find this podcast, was DHH this animated through the whole thing?\n\n\u003e You don't need a mentor. There's no secret sauce left inside anyone's head any more. It's all been tapped, bottled, tweeted, and shared a million times. Sample some of that, but also guard your ignorance. You'll lose it soon enough.\n\nIt takes work, one on one hand holding is a shortcut.  Sometimes one that we need.  Sometimes we need to level up quick, hence why your job might pair you up with someone for the first few months, but it is not something you need, you can figure shit out on your own with hard work.  These days we have things like gippity to bounce ideas off, and you can generally get the sense of the direction the average of the internet it was trained on.  Always add your own experience and make a choice for yourself.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/dhh/status/1928856582588076171",
      "date_published": "2025-05-31T19:49:38Z",
      "date_modified": "2025-05-31T19:49:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-660/",
      "url": "https://waylonwalker.com/thought-660/",
      "title": "💭 Self-Host Weekly",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://selfh.st/weekly/2025-05-30/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://selfh.st/content/images/2025/05/2025-05-30-featured-image.png\" alt=\"Self-Host Weekly (30 May 2025) — Self-hosted news, updates, launches, and content for the week ending Friday, May 30, 2025\" loading=\"lazy\"/ data-glightbox=\"description: Self-Host Weekly (30 May 2025) — Self-hosted news, updates, launches, and content for the week ending Friday, May 30, 2025\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSelf-Host Weekly (30 May 2025)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSelf-hosted news, updates, launches, and content for the week ending Friday, May 30, 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eselfh.st · selfh.st\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe object storage (S3-compatible) platform MinIO created a bit of a stir this week\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI had not heard about this before it came in through selfh.st.  I use minio a lot, and did not know there are so many great alternatives out there for it.  I might be looking into some of these options such as \u003ca href=\"https://garagehq.deuxfleurs.fr/?ref=selfh.st\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/garagehq.deuxfleurs.fr.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/garagehq.deuxfleurs.fr.png\" class=\"has-avatar  has-avatar-before\"\u003egarage\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIts hard to tell from this article what mino dropped, but luckily for me it seems to be all ui related.    I use the UI for debugging/feedback/sometimes learning, but at this point I’ve got good flows for setting up new access keys, buckets, and everything with the cli.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://selfh.st/weekly/2025-05-30/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://selfh.st/content/images/2025/05/2025-05-30-featured-image.png\" alt=\"Self-Host Weekly (30 May 2025) — Self-hosted news, updates, launches, and content for the week ending Friday, May 30, 2025\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSelf-Host Weekly (30 May 2025)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSelf-hosted news, updates, launches, and content for the week ending Friday, May 30, 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eselfh.st \u0026middot; selfh.st\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e The object storage (S3-compatible) platform MinIO created a bit of a stir this week \n\nI had not heard about this before it came in through selfh.st.  I use minio a lot, and did not know there are so many great alternatives out there for it.  I might be looking into some of these options such as [garage](https://garagehq.deuxfleurs.fr/?ref=selfh.st).  \n\nIts hard to tell from this article what mino dropped, but luckily for me it seems to be all ui related.    I use the UI for debugging/feedback/sometimes learning, but at this point I've got good flows for setting up new access keys, buckets, and everything with the cli.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://selfh.st/weekly/2025-05-30/",
      "date_published": "2025-05-31T16:29:26Z",
      "date_modified": "2025-05-31T16:29:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-659/",
      "url": "https://waylonwalker.com/thought-659/",
      "title": "💭 DHH on X: \"NIH: Not Invented Here Syndrome might come from a g...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1928450457262850053\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI suffer hard from NIH, I’m cheap, I like building things, I hate reading the docs, the perfect recipe for some bad NIH.  I really like DHH’s take here.  If no one builds anything new we get stuck with the same old shit.  I think theres a lot of things that as far as my use case is concerned feature complete and needs no more.  I would just build with it or on it, but not re-invent.  It’s a slippery slope.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/dhh/status/1928450457262850053\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI suffer hard from NIH, I'm cheap, I like building things, I hate reading the docs, the perfect recipe for some bad NIH.  I really like DHH's take here.  If no one builds anything new we get stuck with the same old shit.  I think theres a lot of things that as far as my use case is concerned feature complete and needs no more.  I would just build with it or on it, but not re-invent.  It's a slippery slope.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/dhh/status/1928450457262850053",
      "date_published": "2025-05-31T15:40:11Z",
      "date_modified": "2025-05-31T15:40:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-658/",
      "url": "https://waylonwalker.com/thought-658/",
      "title": "💭 feat: add hackernews hits on home page · jimniels/blog@b1a250b",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/892f6fed54ab75821aa86deeb035f754e41eb0f9f405d6b058aa958579ccd866/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8\" alt=\"feat: add hackernews hits on home page · jimniels/blog@b1a250b — Contribute to jimniels/blog development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: feat: add hackernews hits on home page · jimniels/blog@b1a250b — Contribute to jimniels/blog development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efeat: add hackernews hits on home page · jimniels/blog@b1a250b\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to jimniels/blog development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eJim Nielsen fetches his hacker news ranked articles for his home page.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/892f6fed54ab75821aa86deeb035f754e41eb0f9f405d6b058aa958579ccd866/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8\" alt=\"feat: add hackernews hits on home page · jimniels/blog@b1a250b — Contribute to jimniels/blog development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efeat: add hackernews hits on home page · jimniels/blog@b1a250b\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to jimniels/blog development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nJim Nielsen fetches his hacker news ranked articles for his home page.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8",
      "date_published": "2025-05-31T01:56:00Z",
      "date_modified": "2025-05-31T01:56:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-657/",
      "url": "https://waylonwalker.com/thought-657/",
      "title": "💭 Hackernews query by url",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hn.algolia.com/api/v1/search?query=waylonwalker.com\u0026amp;restrictSearchableAttributes=url\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hn.algolia.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hn.algolia.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehn.algolia.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003ca href=\"https://blog.jim-nielsen.com/2022/playing-with-blog-home/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethis post\u003c/a\u003e by Jim Nielsen, lead me to \u003ca href=\"https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8\" 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\"\u003ethis commit\u003c/a\u003e where I found that he was including posts of his that wound up on hackernews.  I really like this idea and might take it, even though i have very few HN linked posts.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hn.algolia.com/api/v1/search?query=waylonwalker.com\u0026amp;restrictSearchableAttributes=url\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehn.algolia.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n[this post](https://blog.jim-nielsen.com/2022/playing-with-blog-home/) by Jim Nielsen, lead me to [this commit](https://github.com/jimniels/blog/commit/b1a250b2357d21e69a58ce3265114e1761fb47f8) where I found that he was including posts of his that wound up on hackernews.  I really like this idea and might take it, even though i have very few HN linked posts.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hn.algolia.com/api/v1/search?query=waylonwalker.com\u0026restrictSearchableAttributes=url",
      "date_published": "2025-05-31T01:54:59Z",
      "date_modified": "2025-05-31T01:54:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-656/",
      "url": "https://waylonwalker.com/thought-656/",
      "title": "💭 External Links - Jim Nielsen’s Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/about/external-links/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Links - Jim Nielsen’s Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI really like the idea of Jim’s Eternal Links, and really want to take it for myself.  To expand here I want to be able to look for common places for rss feeds, and be able to scrape out rss feeds for sites that I tend to link to often.  Also if they have something like a /blogroll it might be a good place to find new great people to follow.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/about/external-links/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Links - Jim Nielsen’s Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI really like the idea of Jim's Eternal Links, and really want to take it for myself.  To expand here I want to be able to look for common places for rss feeds, and be able to scrape out rss feeds for sites that I tend to link to often.  Also if they have something like a /blogroll it might be a good place to find new great people to follow.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/about/external-links/",
      "date_published": "2025-05-31T01:51:13Z",
      "date_modified": "2025-05-31T01:51:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-655/",
      "url": "https://waylonwalker.com/thought-655/",
      "title": "💭 Could I Have Some More Friction in My Life, Please? - Jim Niel...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/more-friction-please/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/blog.jim-nielsen.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/blog.jim-nielsen.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCould I Have Some More Friction in My Life, Please?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eMaybe we need a little more friction in the world. More things that merit our time. Less things that don’t.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI can resonate with this post, less friction feels like it leads me to thinking less, having less skin in the game, understanding less, feeling less fulfilled.  \u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003eVibe coding\u003c/a\u003e is a new trend of 2025, it feels like the future, but it does not quite feel like the present yet.  It’s riddled with errors and I only get frustrated when it doesn’t work.  I like having some friction that leads me to think and pay attention.  There might be a future where this is not required for some things like coding up crud apps, but that does not feel like today.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.jim-nielsen.com/2025/more-friction-please/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCould I Have Some More Friction in My Life, Please?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWriting about the big beautiful mess that is making things for the world wide web.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eblog.jim-nielsen.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Maybe we need a little more friction in the world. More things that merit our time. Less things that don’t.\n\nI can resonate with this post, less friction feels like it leads me to thinking less, having less skin in the game, understanding less, feeling less fulfilled.  Vibe coding is a new trend of 2025, it feels like the future, but it does not quite feel like the present yet.  It's riddled with errors and I only get frustrated when it doesn't work.  I like having some friction that leads me to think and pay attention.  There might be a future where this is not required for some things like coding up crud apps, but that does not feel like today.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.jim-nielsen.com/2025/more-friction-please/",
      "date_published": "2025-05-31T01:49:35Z",
      "date_modified": "2025-05-31T01:49:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-654/",
      "url": "https://waylonwalker.com/thought-654/",
      "title": "💭 A Gentle Intro to RSS",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://derekkedziora.com/blog/rss-guide\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/derekkedziora.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/derekkedziora.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA Gentle Intro to RSS\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA guide to RSS for the less tech savvy.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDerek Kedziora · derekkedziora.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSome of the best things from the old internet are still preserved with RSS. Content is shared via simple files, which means the slow-loading, ad-stuffed and tracker-filled clutter of the modern internet are mostly absent.\u003c/p\u003e\n\u003cp\u003eThere aren’t any algorithms. RSS readers are wonderfully dumb. There’s no AI sifting through content to find whatever will outrage you the most. You just get new posts and mark them as read. It’s a calmer world.\u003c/p\u003e\n\u003cp\u003eWith RSS I follow lots of people writing about normal people things. People blog about getting back into playing the drums, a fun book they just read, a tough problem they’re working through and the other day to day things of life. This type of content tends to get buried on social media — it doesn’t get the clicks and sell ads like fear and outrage do.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI feel like a curmudgeon, but i feel all of these things. I dont think that the new web is completely terrible, what is terrible is that the options of an algorithm ran by companies with differing goals is seemingly the only option.  RSS still works, its fantastic, I personally love it, but theres only a small fraction of the internet that it reaches both ways.  Few people have a reader, even fewer have a feed.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://derekkedziora.com/blog/rss-guide\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA Gentle Intro to RSS\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA guide to RSS for the less tech savvy.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDerek Kedziora \u0026middot; derekkedziora.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Some of the best things from the old internet are still preserved with RSS. Content is shared via simple files, which means the slow-loading, ad-stuffed and tracker-filled clutter of the modern internet are mostly absent.\n\u003e\n\u003e There aren’t any algorithms. RSS readers are wonderfully dumb. There’s no AI sifting through content to find whatever will outrage you the most. You just get new posts and mark them as read. It’s a calmer world.\n\u003e\n\u003e With RSS I follow lots of people writing about normal people things. People blog about getting back into playing the drums, a fun book they just read, a tough problem they’re working through and the other day to day things of life. This type of content tends to get buried on social media — it doesn’t get the clicks and sell ads like fear and outrage do.\n\nI feel like a curmudgeon, but i feel all of these things. I dont think that the new web is completely terrible, what is terrible is that the options of an algorithm ran by companies with differing goals is seemingly the only option.  RSS still works, its fantastic, I personally love it, but theres only a small fraction of the internet that it reaches both ways.  Few people have a reader, even fewer have a feed.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://derekkedziora.com/blog/rss-guide",
      "date_published": "2025-05-31T01:44:36Z",
      "date_modified": "2025-05-31T01:44:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "rss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-653/",
      "url": "https://waylonwalker.com/thought-653/",
      "title": "💭 Command Line | gitignore.io / docs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://docs.gitignore.io/install/command-line\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://docs.gitignore.io/~gitbook/ogimage/-LIvvKfMD3PkcDQCppzH\" alt=\"Command Line | gitignore.io / docs — To run gitignore.io from your command line you need an active internet connection and an environment function. You need to add a function to your environment that lets you access the gitignore.io API.\" loading=\"lazy\"/ data-glightbox=\"description: Command Line | gitignore.io / docs — To run gitignore.io from your command line you need an active internet connection and an environment function. You need to add a function to your environment that lets you access the gitignore.io API.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCommand Line | gitignore.io / docs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTo run gitignore.io from your command line you need an active internet connection and an environment function. You need to add a function to your environment that lets you access the gitignore.io API.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edocs.gitignore.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a very interesting cli, its so simple.  I stumbled accross the \u003ccode\u003egi\u003c/code\u003e command awhile back and was like pfft, I dont want to install something for that.  Didn’t even realize that you \u003cstrong\u003edon’t\u003c/strong\u003e install it, its just http.  Their \u003cem\u003einstall\u003c/em\u003e instructions lead you to putting a curl funtion in your bashrc.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efunction\u003c/span\u003e gi\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e curl -sLw \u003cspan class=\"se\"\u003e\\\u0026#34;\\\\\\n\\\u0026#34;\u003c/span\u003e https://www.toptal.com/developers/gitignore/api/\u003cspan class=\"se\"\u003e\\$\u003c/span\u003e@ \u003cspan class=\"p\"\u003e;\u003c/span\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis now has me wondering “What else can build like this?”\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://docs.gitignore.io/install/command-line\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://docs.gitignore.io/~gitbook/ogimage/-LIvvKfMD3PkcDQCppzH\" alt=\"Command Line | gitignore.io / docs — To run gitignore.io from your command line you need an active internet connection and an environment function. You need to add a function to your environment that lets you access the gitignore.io API.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCommand Line | gitignore.io / docs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTo run gitignore.io from your command line you need an active internet connection and an environment function. You need to add a function to your environment that lets you access the gitignore.io API.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edocs.gitignore.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a very interesting cli, its so simple.  I stumbled accross the `gi` command awhile back and was like pfft, I dont want to install something for that.  Didn't even realize that you **don't** install it, its just http.  Their _install_ instructions lead you to putting a curl funtion in your bashrc.  \n\n``` bash\nfunction gi() { curl -sLw \\\"\\\\\\n\\\" https://www.toptal.com/developers/gitignore/api/\\$@ ;}\n```\n\nThis now has me wondering \"What else can build like this?\"\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://docs.gitignore.io/install/command-line",
      "date_published": "2025-05-29T16:22:42Z",
      "date_modified": "2025-05-29T16:22:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-652/",
      "url": "https://waylonwalker.com/thought-652/",
      "title": "💭 My Keyboard Has Sublayers… and It’s Insane - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"wz5eOowV9iw\" title=\"My Hyper key Has Sublayers… Let me Show you Why\" playlabel=\"Play: My Hyper key Has Sublayers… Let me Show you Why\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003elinkarzu has a way to navigate his entire mac using a hyper key.  Everything looks so tight and polished, also a lot to remember!  Lucky he has a system of mnemonics that make it easy to remember.  His setup is very Mac focused using mac only apps, so this would not work for me, though I’m sure I could get something similar on linux.  He did mention Kanata which is cross platform.\u003c/p\u003e\n\u003ch2 id=\"what-i-do\"\u003eWhat I do \u003ca href=\"#what-i-do\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI use a far different system that is fast loose and easy.  On every system I run I have 9 workspaces that let me put 9 applications, I can easily move apps to different workspaces and have a side by side if I need.  The core of what I do is terminal, web browser, and chat. Those go on workspaces 4,5,6, whch are home-row keys.  If I’m running obs, that is on 8, steam goes on 1. but I have some freedom to move.  Sometimes 2 will be an image editor or a video editor, sometimes something else all together, but I can quickly go to each app.\u003c/p\u003e\n\u003ch2 id=\"what-i-like-from-linkazru\"\u003eWhat I like from Linkazru \u003ca href=\"#what-i-like-from-linkazru\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI do like his layered approach.  I run a 42 key keyboard so things can get a bit cramped quickly. And when thinking in mnemonics you only get 26 letters in the alphabet, but prefixing these with another layer this number goes up exponentially.  Sublayers sound sick to be honest.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"wz5eOowV9iw\" title=\"My Hyper key Has Sublayers… Let me Show you Why\" playlabel=\"Play: My Hyper key Has Sublayers… Let me Show you Why\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nlinkarzu has a way to navigate his entire mac using a hyper key.  Everything looks so tight and polished, also a lot to remember!  Lucky he has a system of mnemonics that make it easy to remember.  His setup is very Mac focused using mac only apps, so this would not work for me, though I'm sure I could get something similar on linux.  He did mention Kanata which is cross platform.\n\n## What I do\n\nI use a far different system that is fast loose and easy.  On every system I run I have 9 workspaces that let me put 9 applications, I can easily move apps to different workspaces and have a side by side if I need.  The core of what I do is terminal, web browser, and chat. Those go on workspaces 4,5,6, whch are home-row keys.  If I'm running obs, that is on 8, steam goes on 1. but I have some freedom to move.  Sometimes 2 will be an image editor or a video editor, sometimes something else all together, but I can quickly go to each app.\n\n## What I like from Linkazru\n\nI do like his layered approach.  I run a 42 key keyboard so things can get a bit cramped quickly. And when thinking in mnemonics you only get 26 letters in the alphabet, but prefixing these with another layer this number goes up exponentially.  Sublayers sound sick to be honest.\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=wz5eOowV9iw",
      "date_published": "2025-05-29T13:04:50Z",
      "date_modified": "2025-05-29T13:04:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-651/",
      "url": "https://waylonwalker.com/thought-651/",
      "title": "💭 Forrest Knight on X: \"you're not allowed to write comments in ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ForrestPKnight/status/1927398791398719997\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/x.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/x.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) · x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eOh, I feel this.  I go through the effort of removing dum ai comments so the ai looks less ai.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eyou’re not allowed to write comments in your code anymore, because if you do everyone will just think it’s ai generated.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://x.com/ForrestPKnight/status/1927398791398719997\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eX (formerly Twitter) \u0026middot; x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nOh, I feel this.  I go through the effort of removing dum ai comments so the ai looks less ai.\n\n\u003e you're not allowed to write comments in your code anymore, because if you do everyone will just think it's ai generated.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://x.com/ForrestPKnight/status/1927398791398719997",
      "date_published": "2025-05-29T01:41:41Z",
      "date_modified": "2025-05-29T01:41:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-650/",
      "url": "https://waylonwalker.com/thought-650/",
      "title": "💭 The adapter pattern in python | Rob Parsons",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://robp.dev/the-adapter-pattern-in-python/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/robp.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/robp.dev.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe adapter pattern in python\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe Adapter pattern is a design pattern that allows objects with incompatible interfaces to work together. It provides a way to convert the interface of an object into another interface that client...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eRob Parsons · robp.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis has me wondering if I need to really learn more patterns, data structures, and algorithms.  This looks particularly useful when trying to combine several objects that you dont have full control over and make them behave similarly.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://robp.dev/the-adapter-pattern-in-python/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe adapter pattern in python\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe Adapter pattern is a design pattern that allows objects with incompatible interfaces to work together. It provides a way to convert the interface of an object into another interface that client...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eRob Parsons \u0026middot; robp.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis has me wondering if I need to really learn more patterns, data structures, and algorithms.  This looks particularly useful when trying to combine several objects that you dont have full control over and make them behave similarly.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://robp.dev/the-adapter-pattern-in-python/",
      "date_published": "2025-05-28T21:19:27Z",
      "date_modified": "2025-05-28T21:19:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/kubernetes-node-labels/",
      "url": "https://waylonwalker.com/kubernetes-node-labels/",
      "title": "kubernetes node labels",
      "content_html": "\u003cp\u003eIf you need to target a specific k8s node in the cluster, you can use labels.\nYou want to treat your nodes as much like cattle as you can, but sometimes\nbudgets get in the way.  You might be like me and just run any free hardware\nyou can get in your cluster, or you might have some large storage or gpu needs\nthat you can’t afford to put on every node in the cluster.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get nodes --show-labels\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add the bigpool label\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl label node k8s-1 \u003cspan class=\"nv\"\u003ebigpool\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nb\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get nodes --show-labels\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# remove the bigpool label\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl label node k8s-1 bigpool-\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTo use the label in a pod set \u003ccode\u003espec.nodeSelector\u003c/code\u003e to the label that you\napplied.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ePod\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ebusybox\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ebusybox\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ebusybox\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enodeSelector\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ebigpool\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;true\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIf you need to target a specific k8s node in the cluster, you can use labels.\nYou want to treat your nodes as much like cattle as you can, but sometimes\nbudgets get in the way.  You might be like me and just run any free hardware\nyou can get in your cluster, or you might have some large storage or gpu needs\nthat you can't afford to put on every node in the cluster.\n\n``` bash\nkubectl get nodes --show-labels\n\n# add the bigpool label\nkubectl label node k8s-1 bigpool=true\nkubectl get nodes --show-labels\n\n# remove the bigpool label\nkubectl label node k8s-1 bigpool-\n```\n\nTo use the label in a pod set `spec.nodeSelector` to the label that you\napplied.\n\n``` yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: busybox\nspec:\n  containers:\n  - name: busybox\n    image: busybox\n  nodeSelector:\n    bigpool: \"true\"\n```\n",
      "summary": "If you need to target a specific k8s node in the cluster, you can use labels. You want to treat your nodes as much like cattle as you can, but sometimes...",
      "date_published": "2025-05-28T18:49:19Z",
      "date_modified": "2025-05-28T18:49:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-649/",
      "url": "https://waylonwalker.com/thought-649/",
      "title": "💭 Adding a Dynamic Now Page in Jekyll",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://derekkedziora.com/blog/dynamic-now-page\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/derekkedziora.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/derekkedziora.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAdding a Dynamic Now Page in Jekyll\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMake an auto-updating now page on a static site like Jekyll, Hugo, 11ty or Gatsby\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDerek Kedziora · derekkedziora.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ewow looking at how this is done kinda draws me towards jekyll a little bit, I did not realize some of the similarities that it has with markata.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://derekkedziora.com/blog/dynamic-now-page\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAdding a Dynamic Now Page in Jekyll\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMake an auto-updating now page on a static site like Jekyll, Hugo, 11ty or Gatsby\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDerek Kedziora \u0026middot; derekkedziora.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nwow looking at how this is done kinda draws me towards jekyll a little bit, I did not realize some of the similarities that it has with markata.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://derekkedziora.com/blog/dynamic-now-page",
      "date_published": "2025-05-28T13:56:38Z",
      "date_modified": "2025-05-28T13:56:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-648/",
      "url": "https://waylonwalker.com/thought-648/",
      "title": "💭 CSS if() functions \u0026 reading-flow (in Chrome 137) - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Apn8ucs7AL0\" title=\"CSS if() functions \u0026amp; reading-flow (in Chrome 137)\" playlabel=\"Play: CSS if() functions \u0026amp; reading-flow (in Chrome 137)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ecss if() just landed, I’m struggling to understand what I an do with this that I can’t do with something as old as classes.  I can get it if I don’t have control over \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e creation or js to add classes.  The example that Una shows includes data that could directly be a classname with a set of styles in css rather than this crazy css variable unpacking out of a data attribute and an if statement.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Apn8ucs7AL0\" title=\"CSS if() functions \u0026amp; reading-flow (in Chrome 137)\" playlabel=\"Play: CSS if() functions \u0026amp; reading-flow (in Chrome 137)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\ncss if() just landed, I'm struggling to understand what I an do with this that I can't do with something as old as classes.  I can get it if I don't have control over html creation or js to add classes.  The example that Una shows includes data that could directly be a classname with a set of styles in css rather than this crazy css variable unpacking out of a data attribute and an if statement.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=Apn8ucs7AL0",
      "date_published": "2025-05-28T03:02:11Z",
      "date_modified": "2025-05-28T03:02:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "css",
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-647/",
      "url": "https://waylonwalker.com/thought-647/",
      "title": "💭 wants | maya.land",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://maya.land/wants/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://maya.land/assets/vanitas-big.jpg\" alt=\"wants — Personal website. Webby personsite. Amateur hour round the clock.\" loading=\"lazy\"/ data-glightbox=\"description: wants — Personal website. Webby personsite. Amateur hour round the clock.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ewants\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePersonal website. Webby personsite. Amateur hour round the clock.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emaya.land · maya.land\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAllen Carr1 on quitting smoking:\n[Carr] recommends working to really notice and internalise that disconnect [between what we want and what we enjoy]. He tells smokers to pay attention to their next cigarette. It’s like mindfulness but for noticing the unpleasantness.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI can appreciate the restraint here, theres something about the mindfulness behind it all.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://maya.land/wants/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://maya.land/assets/vanitas-big.jpg\" alt=\"wants — Personal website. Webby personsite. Amateur hour round the clock.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ewants\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePersonal website. Webby personsite. Amateur hour round the clock.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emaya.land \u0026middot; maya.land\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Allen Carr1 on quitting smoking:\n\u003e [Carr] recommends working to really notice and internalise that disconnect [between what we want and what we enjoy]. He tells smokers to pay attention to their next cigarette. It’s like mindfulness but for noticing the unpleasantness.\n\nI can appreciate the restraint here, theres something about the mindfulness behind it all.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://maya.land/wants/",
      "date_published": "2025-05-28T02:00:31Z",
      "date_modified": "2025-05-28T02:00:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/wants/",
      "url": "https://waylonwalker.com/wants/",
      "title": "wants",
      "content_html": "\u003cp\u003eInspired by \u003ca href=\"https://maya.land/wants/\"\u003emara.town/wants\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"want-but-do-not-enjoy\"\u003ewant but do not enjoy \u003ca href=\"#want-but-do-not-enjoy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNew hardware that cannot be repaired\u003c/li\u003e\n\u003cli\u003eDisciplining Children\u003c/li\u003e\n\u003cli\u003eNice landscaping which requires regular maintenance\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"enjoy-but-do-not-want\"\u003eenjoy but do not want \u003ca href=\"#enjoy-but-do-not-want\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebreakfast\u003c/li\u003e\n\u003cli\u003eFancy things\u003c/li\u003e\n\u003cli\u003eManual Labor in moderation\u003c/li\u003e\n\u003cli\u003eVacations to far away places\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nInspired by [mara.town/wants](https://maya.land/wants/)\n\n## want but do not enjoy\n\n* New hardware that cannot be repaired\n* Disciplining Children\n* Nice landscaping which requires regular maintenance\n\n## enjoy but do not want\n\n* breakfast\n* Fancy things\n* Manual Labor in moderation\n* Vacations to far away places\n",
      "summary": "Inspired by mara.town/wants",
      "date_published": "2025-05-27T21:01:14Z",
      "date_modified": "2025-05-27T21:01:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/linux-is-about-choice/",
      "url": "https://waylonwalker.com/linux-is-about-choice/",
      "title": "Linux Is About Choice",
      "content_html": "\u003cp\u003eThis Luke Smith video came across my feed \u003ca href=\"https://www.youtube.com/watch?v=0-lS8Y79L7g\" 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\"\u003eLinux, Bitcoin: When Tech Projects\nBecome “Too Popular…” Don’t forget the\ngoal.\u003c/a\u003e.  It’s interesting to hear\nhis perspective about Linux, FOSS, Free Software being the end goal, and that we\nare loosing sight of the goal.  This sentiment really aligns with the early\nFOSS movement from Stallman, but was this ever the goal?\u003c/p\u003e\n\u003ch2 id=\"taken-over-by-apathetic-interests\"\u003eTaken over by apathetic interests \u003ca href=\"#taken-over-by-apathetic-interests\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLuke talks about these projects getting taken over by people with no passion\nfor the original goal of freedom and privacy.  They want the projects to grow,\nget bigger, and become mainstream.  This feels exactly the opposite of\nanything Luke would want, so my bias alarm goes off here.  Honestly I do see\nsome of the grossness of projects like this that were grassroots, for freedom\nand privacy get taken over for money grabs.  I’m completely out on bitcoin so I\ncannot make any comment there, but I Truly believe that the Linux kernel is\nnot a money grab as Luke makes the new face of bitcoin sound.\u003c/p\u003e\n\u003ch2 id=\"corporate-backing-is-ok\"\u003eCorporate backing is OK \u003ca href=\"#corporate-backing-is-ok\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m going to take a counter point here from Luke, that it’s OK for Companies to\nbe made, and money to be made on FOSS.  While the Nats relicense has caused a\nKerfuffle, I appreciate their side of the relicense, as a they discussed on \u003ca href=\"https://www.youtube.com/watch?v=hQ7nekmDFfQ\u0026amp;t=2300s\" 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\"\u003eThe\nChangelog: NATS and the CNCF kerfuffle | Derek Collison shares NATS/Synadia\nstory\u003c/a\u003e.  They had a\nstruggle to make money as a small project in the Linux Foundation.  Large\ncompanies would not pay for their service as they have already paid into the\nfoundation.  They chose to relicense new versions of the server so such that it\nwould become FOSS after 2 years.  This gives them time to pay for their development.\u003c/p\u003e\n\u003cp\u003eRug pulls, price gouging, and other bad behaviors aside Funding is overall good\nfor the FOSS community.  It is a good thing that Torvalds is able to make a\nliving from the work he has done on the kernel.\u003c/p\u003e\n\u003ch2 id=\"foss-hardware\"\u003eFOSS hardware \u003ca href=\"#foss-hardware\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLuke mentions FOSS hardware in the video.  I think this is great and really\nplays to the longevity of a product and limiting e-waste.  I think the main\ngoal here is not necessarily openness, but repairability.  At least for me.  I\ncould not care to build out ram or hard drives from scratch, but what I do care\nis that I can repair my hardware.   I don’t want my investments into hardware\nto go to waste and be thrown away because of a component failure.  I get that\nwe are largely there on the mobile side, and that really sucks.\u003c/p\u003e\n\u003ch2 id=\"choice\"\u003eChoice \u003ca href=\"#choice\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI really feel like the goal of Linux is choice, its not locked into FOSS.  FOSS\nis a great option, and is really only there for Linux, and not at all an option\nfor Windows or MacOS.  I’d argue that at the beginning of the Linux project\nthere was no choice your only real option was closed source all the way\naround.  These days not only do we have the freedom to choose an OS, but we can\nchoose how we want our Linux.  If you want to deploy Linux at a large company,\nand you are willing to pay for support from someone like Red Hat or Canonical\nthat’s an option, but its not the only option.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=bWX7jI9t7j8\" 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\"\u003emacOS Power User Asks DistroTube: Which Linux Never Breaks?\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIn this interview DT talks about getting new hardware sent to him, and they ask\ndo you want us to put Linux on it?  His answer, No, it doesn’t matter, I wont\nuse it anyways.  You see DT is not here purely for the Linux, he is here for\nthe choice.  His choice is to pick every last config option, and tailor every\ninstalled executable to fit his needs.  His preferences happen to be in the\nfull Free as in Freedom realm.\u003c/p\u003e\n\u003ch2 id=\"infinite-linux\"\u003eInfinite Linux \u003ca href=\"#infinite-linux\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eLinux has infinite options of configuration, hundreds of distros, hundreds of\ndesktop environments.  You can Choose a Floating window manager, Tiling window\nmanager, or go full TTY with no graphical environment.  With MacOS and Windows\nyou get it the way they decide you get it with a level of configuration that\npales in comparison to what you get on Linux.\u003c/p\u003e\n\u003ch2 id=\"immutable-linux\"\u003eImmutable Linux \u003ca href=\"#immutable-linux\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA very recent and modern example of this is immutable or cloud native distros,\nthe idea is that they are more like an appliance, giving you less freedom and\ncontrol than you typically would have on a normal bare metal install of linux,\n\u003ccode\u003ebootc\u003c/code\u003e is just really taking off this year.  I’m currently running one of\nthese distro’s called bazzite and I am really loving it.  I have a couple of\ndesktop applications that I install from the discover store as flatpaks, but\nmosty I live in a fully custom distrobox that I put every ounce of ricing and\nconfiguration that I want into.  For me it has been ultra reliable, rather than\nrolling my own thing that is a combination of packages unique to me, I have\nsomething that is rock hard in the community and I run versioned images of my\ndevtainer that make it easy for me to roll back on if something were to break.\u003c/p\u003e\n\u003cp\u003eFor me this is feedom, I get to fully control the environment I really care\nabout, my terminal.  I get a window manager with 9 workspaces that I can hotkey\nto, and I never miss a game night with my kids due to some weird graphics issue.\u003c/p\u003e\n\u003ch2 id=\"freedom\"\u003eFreedom \u003ca href=\"#freedom\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn the end Linux was born of this freedom, and is an important part.  While its\ngreat that there are players here that are able to make money, be good citizens\nand give back, there are bad players.  Even if all the players are good not\neveryone is going to agree and money will only spoil their hurt feelings even\nmore.  If Linux looses this freedom of choice and becomes something that you\nonly get littered with Closed source software, or on paid platforms, or imposes\nany level of restrictions on to you its lost, and we need a new revolution to\nrise in its ashes.\u003c/p\u003e\n\u003ch2 id=\"fin\"\u003eFin \u003ca href=\"#fin\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m trying to write more free flowing articles philosophical in nature.  There\nare probably grammatical and spelling misttakes.  There are probably things I\nwill re-read in 6 months and not agree with, but these are my free flowing\nthoughts right now. I think we are missing really good opinion pieces on the\ninternet these days. Too much AI generated, “Hello World”, shoulda read the\ndocs BS.  I subscribe to a lot of other good folks that give their real\nopinions you can find them on my\n\u003ca href=\"https://reader.waylonwalker.com/blogroll\"\u003eblogroll\u003c/a\u003e.\u003c/p\u003e\n",
      "content_text": "\nThis Luke Smith video came across my feed [Linux, Bitcoin: When Tech Projects\nBecome \"Too Popular...\" Don't forget the\ngoal.](https://www.youtube.com/watch?v=0-lS8Y79L7g).  It's interesting to hear\nhis perspective about Linux, FOSS, Free Software being the end goal, and that we\nare loosing sight of the goal.  This sentiment really aligns with the early\nFOSS movement from Stallman, but was this ever the goal?\n\n## Taken over by apathetic interests\n\nLuke talks about these projects getting taken over by people with no passion\nfor the original goal of freedom and privacy.  They want the projects to grow,\nget bigger, and become mainstream.  This feels exactly the opposite of\nanything Luke would want, so my bias alarm goes off here.  Honestly I do see\nsome of the grossness of projects like this that were grassroots, for freedom\nand privacy get taken over for money grabs.  I'm completely out on bitcoin so I\ncannot make any comment there, but I Truly believe that the Linux kernel is\nnot a money grab as Luke makes the new face of bitcoin sound.\n\n## Corporate backing is OK\n\nI'm going to take a counter point here from Luke, that it's OK for Companies to\nbe made, and money to be made on FOSS.  While the Nats relicense has caused a\nKerfuffle, I appreciate their side of the relicense, as a they discussed on [The\nChangelog: NATS and the CNCF kerfuffle | Derek Collison shares NATS/Synadia\nstory](https://www.youtube.com/watch?v=hQ7nekmDFfQ\u0026t=2300s).  They had a\nstruggle to make money as a small project in the Linux Foundation.  Large\ncompanies would not pay for their service as they have already paid into the\nfoundation.  They chose to relicense new versions of the server so such that it\nwould become FOSS after 2 years.  This gives them time to pay for their development.\n\nRug pulls, price gouging, and other bad behaviors aside Funding is overall good\nfor the FOSS community.  It is a good thing that Torvalds is able to make a\nliving from the work he has done on the kernel.\n\n## FOSS hardware\n\nLuke mentions FOSS hardware in the video.  I think this is great and really\nplays to the longevity of a product and limiting e-waste.  I think the main\ngoal here is not necessarily openness, but repairability.  At least for me.  I\ncould not care to build out ram or hard drives from scratch, but what I do care\nis that I can repair my hardware.   I don't want my investments into hardware\nto go to waste and be thrown away because of a component failure.  I get that\nwe are largely there on the mobile side, and that really sucks.\n\n## Choice\n\nI really feel like the goal of Linux is choice, its not locked into FOSS.  FOSS\nis a great option, and is really only there for Linux, and not at all an option\nfor Windows or MacOS.  I'd argue that at the beginning of the Linux project\nthere was no choice your only real option was closed source all the way\naround.  These days not only do we have the freedom to choose an OS, but we can\nchoose how we want our Linux.  If you want to deploy Linux at a large company,\nand you are willing to pay for support from someone like Red Hat or Canonical\nthat's an option, but its not the only option.\n\n[macOS Power User Asks DistroTube: Which Linux Never Breaks?](https://www.youtube.com/watch?v=bWX7jI9t7j8)\n\nIn this interview DT talks about getting new hardware sent to him, and they ask\ndo you want us to put Linux on it?  His answer, No, it doesn't matter, I wont\nuse it anyways.  You see DT is not here purely for the Linux, he is here for\nthe choice.  His choice is to pick every last config option, and tailor every\ninstalled executable to fit his needs.  His preferences happen to be in the\nfull Free as in Freedom realm.\n\n## Infinite Linux\n\nLinux has infinite options of configuration, hundreds of distros, hundreds of\ndesktop environments.  You can Choose a Floating window manager, Tiling window\nmanager, or go full TTY with no graphical environment.  With MacOS and Windows\nyou get it the way they decide you get it with a level of configuration that\npales in comparison to what you get on Linux.\n\n## Immutable Linux\n\nA very recent and modern example of this is immutable or cloud native distros,\nthe idea is that they are more like an appliance, giving you less freedom and\ncontrol than you typically would have on a normal bare metal install of linux,\n`bootc` is just really taking off this year.  I'm currently running one of\nthese distro's called bazzite and I am really loving it.  I have a couple of\ndesktop applications that I install from the discover store as flatpaks, but\nmosty I live in a fully custom distrobox that I put every ounce of ricing and\nconfiguration that I want into.  For me it has been ultra reliable, rather than\nrolling my own thing that is a combination of packages unique to me, I have\nsomething that is rock hard in the community and I run versioned images of my\ndevtainer that make it easy for me to roll back on if something were to break.\n\nFor me this is feedom, I get to fully control the environment I really care\nabout, my terminal.  I get a window manager with 9 workspaces that I can hotkey\nto, and I never miss a game night with my kids due to some weird graphics issue.\n\n## Freedom\n\nIn the end Linux was born of this freedom, and is an important part.  While its\ngreat that there are players here that are able to make money, be good citizens\nand give back, there are bad players.  Even if all the players are good not\neveryone is going to agree and money will only spoil their hurt feelings even\nmore.  If Linux looses this freedom of choice and becomes something that you\nonly get littered with Closed source software, or on paid platforms, or imposes\nany level of restrictions on to you its lost, and we need a new revolution to\nrise in its ashes.\n\n## Fin\n\nI'm trying to write more free flowing articles philosophical in nature.  There\nare probably grammatical and spelling misttakes.  There are probably things I\nwill re-read in 6 months and not agree with, but these are my free flowing\nthoughts right now. I think we are missing really good opinion pieces on the\ninternet these days. Too much AI generated, \"Hello World\", shoulda read the\ndocs BS.  I subscribe to a lot of other good folks that give their real\nopinions you can find them on my\n[blogroll](https://reader.waylonwalker.com/blogroll).\n",
      "summary": "This Luke Smith video came across my feed Linux, Bitcoin: When Tech Projects Become \"Too Popular...\" Don't forget the goal.. It's interesting to hear his...",
      "date_published": "2025-05-27T13:37:00Z",
      "date_modified": "2025-05-27T13:37:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-646/",
      "url": "https://waylonwalker.com/thought-646/",
      "title": "💭 Blogroll",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://reader.waylonwalker.com/blogroll/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://shots.wayl.one/shot/?url=https://waylonwalker.com/reader/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\" alt=\"Blogroll — Blogroll - a collection of awesome people I follow online\" loading=\"lazy\"/ data-glightbox=\"description: Blogroll — Blogroll - a collection of awesome people I follow online\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBlogroll\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eBlogroll - a collection of awesome people I follow online\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWaylon Walker · reader.waylonwalker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI rolled out the blogroll today, nothing pretty, but is one single page of the rss feeds I follow.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://reader.waylonwalker.com/blogroll/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://shots.wayl.one/shot/?url=https://waylonwalker.com/reader/og/\u0026amp;height=600\u0026amp;width=1200\u0026amp;scaled_width=1200\u0026amp;scaled_height=600\" alt=\"Blogroll — Blogroll - a collection of awesome people I follow online\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBlogroll\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eBlogroll - a collection of awesome people I follow online\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWaylon Walker \u0026middot; reader.waylonwalker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI rolled out the blogroll today, nothing pretty, but is one single page of the rss feeds I follow.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://reader.waylonwalker.com/blogroll/",
      "date_published": "2025-05-27T02:33:08Z",
      "date_modified": "2025-05-27T02:33:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "rss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-645/",
      "url": "https://waylonwalker.com/thought-645/",
      "title": "💭 Late Night Linux – Episode 335 - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"warmcBBfZn0\" title=\"Late Night Linux – Episode 335\" playlabel=\"Play: Late Night Linux – Episode 335\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eMarkata got a shout out part way through the latest episode of LNL, I will go back, re-listen and take some of the feedback.  His thoughts on Markata were interesting. On one hand it really is a thing for me that works for me, and as a person with too many side projects I don’t have the focus to really give it polish.  On the other hand it really confirms why listen to podcasts, news, finger on the pulse, opinions and how often these guys are wrong, they are not the expert they probably look at 6 things like this a week.  He said that it was some sort of javascript thing, that maybe he could fix or customize with javascript if he wanted, kinda shocking, I thought maybe I accidentally added node modules or something dumb, nope, I have a whopping 1.4% js.  So most of the comments were plain wrong.  I get it he probably peeked at it for 30s and realized it wasn’t the thing for his problem.  At the same time I should probably do a better job at marketing what it really is, cleaning up the docs and demo.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"warmcBBfZn0\" title=\"Late Night Linux – Episode 335\" playlabel=\"Play: Late Night Linux – Episode 335\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nMarkata got a shout out part way through the latest episode of LNL, I will go back, re-listen and take some of the feedback.  His thoughts on Markata were interesting. On one hand it really is a thing for me that works for me, and as a person with too many side projects I don't have the focus to really give it polish.  On the other hand it really confirms why listen to podcasts, news, finger on the pulse, opinions and how often these guys are wrong, they are not the expert they probably look at 6 things like this a week.  He said that it was some sort of javascript thing, that maybe he could fix or customize with javascript if he wanted, kinda shocking, I thought maybe I accidentally added node modules or something dumb, nope, I have a whopping 1.4% js.  So most of the comments were plain wrong.  I get it he probably peeked at it for 30s and realized it wasn't the thing for his problem.  At the same time I should probably do a better job at marketing what it really is, cleaning up the docs and demo.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=warmcBBfZn0",
      "date_published": "2025-05-27T02:31:53Z",
      "date_modified": "2025-05-27T02:31:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markata",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-644/",
      "url": "https://waylonwalker.com/thought-644/",
      "title": "💭 Root for Your Friends · Joseph Thacker",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html\" class=\"glightbox-link\" aria-label=\"https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html\" alt=\"https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html\"/ data-glightbox=\"description: https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eSuch a great message right now.  I feel like everywhere I turn is negativity, especially social media.  It feels like so many things are trying to divide and create hate.  “This” is what we should be doing with social media.  There are a lot of elements of “there are two ways to have the biggest building in town, tear down all the bigger buildings, or just build the biggest fucking building”, If you want to be successful in X then surround yourself with others successful in X.  This is a catalytic skill that everyone needs to have in their belt.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html](/static/https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html)\n\nSuch a great message right now.  I feel like everywhere I turn is negativity, especially social media.  It feels like so many things are trying to divide and create hate.  \"This\" is what we should be doing with social media.  There are a lot of elements of \"there are two ways to have the biggest building in town, tear down all the bigger buildings, or just build the biggest fucking building\", If you want to be successful in X then surround yourself with others successful in X.  This is a catalytic skill that everyone needs to have in their belt.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://josephthacker.com/personal/2025/05/13/root-for-your-friends.html",
      "date_published": "2025-05-27T02:27:24Z",
      "date_modified": "2025-05-27T02:27:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/javascript-b64/",
      "url": "https://waylonwalker.com/javascript-b64/",
      "title": "javascript b64",
      "content_html": "\u003cp\u003eI’m currently [[replacing-google-search-apps-with-\u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself-hosted\u003c/a\u003e-web-apps]] and\ndecided to create a simple b64 encoder/decoder, just start typing to enter\ntext, escape to deselect, then e/d to encode/decode.\u003c/p\u003e\n\u003cp\u003eI’m trying to make these apps super simple, self hosted out of minio, static\n\u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e, and javascript.  It’s been fun to get back to some simple interactive web\ndevelopment like this. No build just a website that does something.  No broken\nbuilds, no containers to deploy, just push to minio.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eencoded\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003ebtoa\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edecoded\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nx\"\u003eatob\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003eencoded\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is the result.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://b64.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://b64.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://b64.wayl.one\"/ data-glightbox=\"description: screenshot of https://b64.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI'm currently [[replacing-google-search-apps-with-self-hosted-web-apps]] and\ndecided to create a simple b64 encoder/decoder, just start typing to enter\ntext, escape to deselect, then e/d to encode/decode.\n\nI'm trying to make these apps super simple, self hosted out of minio, static\nhtml, and javascript.  It's been fun to get back to some simple interactive web\ndevelopment like this. No build just a website that does something.  No broken\nbuilds, no containers to deploy, just push to minio.\n\n``` javascript\nencoded = btoa(content);\ndecoded = atob(encoded);\n```\n\nHere is the result.\n\n[![screenshot of https://b64.wayl.one](https://shots.waylonwalker.com/shot/?url=https://b64.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://b64.wayl.one)\n",
      "summary": "I'm currently replacing-google-search-apps-with-self-hosted-web-apps and decided to create a simple b64 encoder/decoder, just start typing to enter text,...",
      "date_published": "2025-05-25T21:01:04Z",
      "date_modified": "2025-05-25T21:01:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "javascript",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/ayoisaiah-f2/",
      "url": "https://waylonwalker.com/ayoisaiah-f2/",
      "title": "⭐ ayoisaiah f2",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/ayoisaiah/f2\" 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\"\u003ef2\u003c/a\u003e by \u003ca href=\"https://github.com/ayoisaiah\" 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\"\u003eayoisaiah\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eF2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!\u003c/p\u003e\n",
      "content_text": "\n[f2](https://github.com/ayoisaiah/f2) by [ayoisaiah](https://github.com/ayoisaiah) is a game-changer in its space. Excited to see how it evolves.\n\nF2 is a cross-platform command-line tool for batch renaming files and directories quickly and safely. Written in Go!\n",
      "summary": "f2 by ayoisaiah is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-05-24T21:00:49Z",
      "date_modified": "2025-05-24T21:00:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-642/",
      "url": "https://waylonwalker.com/thought-642/",
      "title": "💭 Billy Basso on code architecture of Animal Well! - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"YngwUu4bXR4\" title=\"Billy Basso on code architecture of Animal Well!\" playlabel=\"Play: Billy Basso on code architecture of Animal Well!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat conversation with Billy Basso the creator of Animal Well on the code architecture of Animal well.  It’s all hand crafted C++. He talks about early games he tried to build being heavy in oop, and really got lost in oop.  Animal well is very flat, there is no inheritance, just lists of entities that all implement similar methods in their own way.  Layering and order of entities becomes very important.  Its crazy how much he had to think about hardware and MS build being very helpful with this, but needing to know all of the console apis.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"YngwUu4bXR4\" title=\"Billy Basso on code architecture of Animal Well!\" playlabel=\"Play: Billy Basso on code architecture of Animal Well!\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nGreat conversation with Billy Basso the creator of Animal Well on the code architecture of Animal well.  It's all hand crafted C++. He talks about early games he tried to build being heavy in oop, and really got lost in oop.  Animal well is very flat, there is no inheritance, just lists of entities that all implement similar methods in their own way.  Layering and order of entities becomes very important.  Its crazy how much he had to think about hardware and MS build being very helpful with this, but needing to know all of the console apis.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=YngwUu4bXR4\u0026t=6039s",
      "date_published": "2025-05-24T19:38:21Z",
      "date_modified": "2025-05-24T19:38:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gamedev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-641/",
      "url": "https://waylonwalker.com/thought-641/",
      "title": "💭 Just fucking code.",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.justfuckingcode.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eJust fucking code.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustfuckingcode.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is great, beautifully captures a modern backend view of \u003ca href=\"https://motherfuckingwebsite.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/motherfuckingwebsite.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/motherfuckingwebsite.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://motherfuckingwebsite.com/\u003c/a\u003e.  I honestly resonate with almost all of this.  I have found myself in more trouble than help when trying to fully vibe out a project.  It never refactors, it leaves it shit everywhere, it mostly does what you say, until you get to something that seems easy, so you try to do it yourself, but you break its brittle piece of shit into pieces any time you try to touch it.  AI coding help is great, mcp seems like it really has some game changing abilities, but hands of vibe coded crap aint there yet for me.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.justfuckingcode.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eJust fucking code.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejustfuckingcode.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is great, beautifully captures a modern backend view of https://motherfuckingwebsite.com/.  I honestly resonate with almost all of this.  I have found myself in more trouble than help when trying to fully vibe out a project.  It never refactors, it leaves it shit everywhere, it mostly does what you say, until you get to something that seems easy, so you try to do it yourself, but you break its brittle piece of shit into pieces any time you try to touch it.  AI coding help is great, mcp seems like it really has some game changing abilities, but hands of vibe coded crap aint there yet for me.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.justfuckingcode.com/",
      "date_published": "2025-05-24T19:31:09Z",
      "date_modified": "2025-05-24T19:31:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-640/",
      "url": "https://waylonwalker.com/thought-640/",
      "title": "💭 The Plot of \"Hollow Knight\" in One Minute - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"3xWgKFISG5U\" title=\"The Plot of \u0026#34;Hollow Knight\u0026#34; in One Minute\" playlabel=\"Play: The Plot of \u0026#34;Hollow Knight\u0026#34; in One Minute\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI did not realize half of this, and it took me at least 4 watches through this to catch everything.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"3xWgKFISG5U\" title=\"The Plot of \u0026#34;Hollow Knight\u0026#34; in One Minute\" playlabel=\"Play: The Plot of \u0026#34;Hollow Knight\u0026#34; in One Minute\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI did not realize half of this, and it took me at least 4 watches through this to catch everything.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/3xWgKFISG5U",
      "date_published": "2025-05-24T00:01:07Z",
      "date_modified": "2025-05-24T00:01:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "game",
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-639/",
      "url": "https://waylonwalker.com/thought-639/",
      "title": "💭 k8s-monitoring-helm/charts/k8s-monitoring/docs/examples/privat...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/grafana/k8s-monitoring-helm/blob/main/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml#L29\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/bd30bddc248979379c0a4d2c422d12513988c13c580e31633599ca100b715c7b/grafana/k8s-monitoring-helm\" alt=\"k8s-monitoring-helm/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml at main · grafana/k8s-monitoring-helm — Contribute to grafana/k8s-monitoring-helm development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: k8s-monitoring-helm/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml at main · grafana/k8s-monitoring-helm — Contribute to grafana/k8s-monitoring-helm development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ek8s-monitoring-helm/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml at main · grafana/k8s-monitoring-helm\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to grafana/k8s-monitoring-helm development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ek8s-monitoring requires setting imageregistry and pullsecrets twice\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eglobal\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003eregistry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy.registry.com\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003epullSecrets\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy-registry-creds\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eimageRegistry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy.registry.com\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eimagePullSecrets\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy-registry-creds\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/grafana/k8s-monitoring-helm/blob/main/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml#L29\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/bd30bddc248979379c0a4d2c422d12513988c13c580e31633599ca100b715c7b/grafana/k8s-monitoring-helm\" alt=\"k8s-monitoring-helm/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml at main · grafana/k8s-monitoring-helm — Contribute to grafana/k8s-monitoring-helm development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ek8s-monitoring-helm/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml at main · grafana/k8s-monitoring-helm\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eContribute to grafana/k8s-monitoring-helm development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nk8s-monitoring requires setting imageregistry and pullsecrets twice\n\n``` yaml\nglobal:\n  image:\n    registry: my.registry.com\n    pullSecrets:\n      - name: my-registry-creds\n  imageRegistry: my.registry.com\n  imagePullSecrets:\n    - name: my-registry-creds\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/grafana/k8s-monitoring-helm/blob/main/charts/k8s-monitoring/docs/examples/private-image-registries/globally/values.yaml#L29",
      "date_published": "2025-05-23T19:58:59Z",
      "date_modified": "2025-05-23T19:58:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "helm",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-638/",
      "url": "https://waylonwalker.com/thought-638/",
      "title": "💭 No docs, no bugs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/May/22/no-docs-no-bugs/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNo docs, no bugs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf your library doesn\u0026#39;t have any documentation, it can\u0026#39;t have any bugs. Documentation specifies what your code is supposed to do. Your tests specify what it actually does. Bugs exist …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBugs exist when your test-enforced implementation fails to match the behavior described in your documentation. Without documentation a bug is just undefined behavior.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis is quite an interesting thought, so does this mean that, none of my undocumented side projects have bugs?  no I think there is still some implied behavior that naming things covers.  a function \u003ccode\u003eget_bucket_contents\u003c/code\u003e implies doing something wtih s3, getting stuff from your local filesystem or crashing would be considered a bug.  I think the argument here is that if I start mining bitcoin when you call \u003ccode\u003eget_bucket_contents\u003c/code\u003e and I have not documented it that this is a feature not a bug.  If I were to take this a step further, now do I need to document that this does not also start a bitcoin miner?  maybe this is more of an unwanted feature than a bug, I’m convincing myself more and more.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/May/22/no-docs-no-bugs/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNo docs, no bugs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIf your library doesn\u0026#39;t have any documentation, it can\u0026#39;t have any bugs. Documentation specifies what your code is supposed to do. Your tests specify what it actually does. Bugs exist …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Bugs exist when your test-enforced implementation fails to match the behavior described in your documentation. Without documentation a bug is just undefined behavior.\n\nThis is quite an interesting thought, so does this mean that, none of my undocumented side projects have bugs?  no I think there is still some implied behavior that naming things covers.  a function `get_bucket_contents` implies doing something wtih s3, getting stuff from your local filesystem or crashing would be considered a bug.  I think the argument here is that if I start mining bitcoin when you call `get_bucket_contents` and I have not documented it that this is a feature not a bug.  If I were to take this a step further, now do I need to document that this does not also start a bitcoin miner?  maybe this is more of an unwanted feature than a bug, I'm convincing myself more and more.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/May/22/no-docs-no-bugs/#atom-everything",
      "date_published": "2025-05-22T19:50:40Z",
      "date_modified": "2025-05-22T19:50:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-637/",
      "url": "https://waylonwalker.com/thought-637/",
      "title": "💭 The Subtle Details That Make Hollow Knight Great - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Vxt8uud5o_4\" title=\"The Subtle Details That Make Hollow Knight Great\" playlabel=\"Play: The Subtle Details That Make Hollow Knight Great\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eSo many small details go into making hollow knight such a great game, but it starts with such good controls, every thing is so fluid and predictable.  I knew about coyote time, but not some of the other details that Juniper covers, such as hang time, and faster decent than jump.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"Vxt8uud5o_4\" title=\"The Subtle Details That Make Hollow Knight Great\" playlabel=\"Play: The Subtle Details That Make Hollow Knight Great\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nSo many small details go into making hollow knight such a great game, but it starts with such good controls, every thing is so fluid and predictable.  I knew about coyote time, but not some of the other details that Juniper covers, such as hang time, and faster decent than jump.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=Vxt8uud5o_4\u0026t=1s",
      "date_published": "2025-05-22T19:00:50Z",
      "date_modified": "2025-05-22T19:00:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gamedev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/tinyapps/",
      "url": "https://waylonwalker.com/tinyapps/",
      "title": "tinyapps",
      "content_html": "\u003cp\u003eI’m working on replacing my usage of google inline search apps with real apps,\nthese are ones that I create and host on my own \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e.  The first three that\nI created are mostly chatgpt based, with a bit of hand edit after the fact,\nuploaded to minio and become an app on my\n\u003ca href=\"https://github.com/waylonwalker/k8s-pages\" 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\"\u003ek8s-pages\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003erenamed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThe original title of this post was \u0026#34;Replacing Google Search Apps With Self Hosted Web Apps\u0026#34;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m leaning on \u003ca href=\"/web-wakelock/\" class=\"wikilink\" data-title=\"web wakelock\" data-description=\"I\u0026#39;m trying to replace my usage of google inline search apps with real apps, today I used a stopwatch to time some things out at work by opening stopwatch....\" data-date=\"2025-05-21\" data-preview=\"I\u0026#39;m trying to replace my usage of google inline search apps with real apps, today I used a stopwatch to time some things out at work by opening stopwatch....\"\u003eweb wakelock\u003c/a\u003e to keep the screen on while these apps are\nrunning, primarily clos, timer, and stopwatch.\u003c/p\u003e\n\u003ch2 id=\"clock\"\u003eClock \u003ca href=\"#clock\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA large displya clock.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://clock.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://clock.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://clock.wayl.one\"/ data-glightbox=\"description: screenshot of https://clock.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"timer\"\u003eTimer \u003ca href=\"#timer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA simple timer that counts down from thet set time.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://timer.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://timer.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://timer.wayl.one\"/ data-glightbox=\"description: screenshot of https://timer.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"stopwatch\"\u003eStopwatch \u003ca href=\"#stopwatch\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is the one that inspired it all, I need to run a few stopwatches at work,\nand chose to just do it right in the google search with a few tabs running.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://stopwatch.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://stopwatch.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://stopwatch.wayl.one\"/ data-glightbox=\"description: screenshot of https://stopwatch.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"dice\"\u003eDice \u003ca href=\"#dice\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eA simple dice roller, this one is the one that I decided to start adding \u003ccode\u003e?\u003c/code\u003e\nfor help.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dice.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://dice.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://dice.wayl.one\"/ data-glightbox=\"description: screenshot of https://dice.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"uuid\"\u003eUUID \u003ca href=\"#uuid\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt displays a uuid, thats it.  \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e to copy.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://uuid.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://uuid.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://uuid.wayl.one\"/ data-glightbox=\"description: screenshot of https://uuid.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"b64\"\u003eb64 \u003ca href=\"#b64\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eToday i spent some time on \u003ca href=\"b64.wayl.one\"\u003eb64\u003c/a\u003e, it is a base64 decoder/encoder.\nJust start tying to enter text, or paste, escape to deselect the text box, d to\ndecode, e to encode, ? for help.  It took a bit to get all of the keymaps right\nwith the differnt modes and make sure that for instance you don’t keep typing\nin the input box while in help mode, or decode/encode while in the input box.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://b64.wayl.one\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://b64.wayl.one\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://b64.wayl.one\"/ data-glightbox=\"description: screenshot of https://b64.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"pocketcal\"\u003ePocketCal \u003ca href=\"#pocketcal\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis one is not mine, it’s made by \u003ca href=\"https://cassidoo.co/post/pocketcal-build-log/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/cassidoo.co.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/cassidoo.co.png\" class=\"has-avatar  has-avatar-before\"\u003eCassidy\nWilliams\u003c/a\u003e), but is within the\nethos and deserves a mention here.  Its a single page calendar that is a static\nsite completely rendered on the front end, data is stored in the url as you\ninteract with it.  None of your data goes to a server.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://pocketcal.com\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://pocketcal.com\u0026amp;height=450\u0026amp;width=800\u0026amp;scaled_width=800\u0026amp;scaled_height=450\u0026amp;selectors=\" alt=\"screenshot of https://pocketcal.com\"/ data-glightbox=\"description: screenshot of https://pocketcal.com\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"qrcode\"\u003eqrcode \u003ca href=\"#qrcode\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eToday I wanted to finish an article that I was on afk and It killed me to get\nit from my work computer to my phone, so I made a qrcode generator.  Paste in\nor type in your message and it shows up as a qr code live.  This one needed an\nevent listener for window resize since the library creates a rigid canvas qr\ncode that does not fit on the screen once you create it then resize the window.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps%2F%3Ftext%3Dhttps%3A%2F%2Fshots.waylonwalker.com%2F\u0026amp;width=450\u0026amp;height=500\" alt=\"screenshot of https://b64.wayl.one\"/ data-glightbox=\"description: screenshot of https://b64.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI even added query params to pass hex codes in for \u003ccode\u003ecolor\u003c/code\u003e and \u003ccode\u003ebg\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps/\"\u003e\u003cimg class=\"glightbox\" src=\"https://shots.waylonwalker.com/shot/?url=https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps%2F%3Ftext%3Dhttps%3A%2F%2Fshots.waylonwalker.com%2F%26color%3Dff69b4%26bg%3Dffcc00\u0026amp;width=450\u0026amp;height=500\" alt=\"screenshot of https://b64.wayl.one\"/ data-glightbox=\"description: screenshot of https://b64.wayl.one\"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI'm working on replacing my usage of google inline search apps with real apps,\nthese are ones that I create and host on my own homelab.  The first three that\nI created are mostly chatgpt based, with a bit of hand edit after the fact,\nuploaded to minio and become an app on my\n[k8s-pages](https://github.com/waylonwalker/k8s-pages)\n\n!!! Note renamed\n    The original title of this post was \"Replacing Google Search Apps With Self Hosted Web Apps\"\n\nI'm leaning on \u003ca href=\"/web-wakelock/\" class=\"wikilink\" data-title=\"web wakelock\" data-description=\"I\u0026#39;m trying to replace my usage of google inline search apps with real apps, today I used a stopwatch to time some things out at work by opening stopwatch....\" data-date=\"2025-05-21\"\u003eweb wakelock\u003c/a\u003e to keep the screen on while these apps are\nrunning, primarily clos, timer, and stopwatch.\n\n## Clock\n\nA large displya clock.\n\n[![screenshot of https://clock.wayl.one](https://shots.waylonwalker.com/shot/?url=https://clock.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://clock.wayl.one)\n\n## Timer\n\nA simple timer that counts down from thet set time.\n\n[![screenshot of https://timer.wayl.one](https://shots.waylonwalker.com/shot/?url=https://timer.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://timer.wayl.one)\n\n## Stopwatch\n\nThis is the one that inspired it all, I need to run a few stopwatches at work,\nand chose to just do it right in the google search with a few tabs running.\n\n[![screenshot of https://stopwatch.wayl.one](https://shots.waylonwalker.com/shot/?url=https://stopwatch.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://stopwatch.wayl.one)\n\n## Dice\n\nA simple dice roller, this one is the one that I decided to start adding `?`\nfor help.\n\n[![screenshot of https://dice.wayl.one](https://shots.waylonwalker.com/shot/?url=https://dice.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://dice.wayl.one)\n\n## UUID\n\nIt displays a uuid, thats it.  \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e to copy.\n\n[![screenshot of https://uuid.wayl.one](https://shots.waylonwalker.com/shot/?url=https://uuid.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://uuid.wayl.one)\n\n## b64\n\nToday i spent some time on [b64](b64.wayl.one), it is a base64 decoder/encoder.\nJust start tying to enter text, or paste, escape to deselect the text box, d to\ndecode, e to encode, ? for help.  It took a bit to get all of the keymaps right\nwith the differnt modes and make sure that for instance you don't keep typing\nin the input box while in help mode, or decode/encode while in the input box.\n\n[![screenshot of https://b64.wayl.one](https://shots.waylonwalker.com/shot/?url=https://b64.wayl.one\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://b64.wayl.one)\n\n## PocketCal\n\nThis one is not mine, it's made by [Cassidy\nWilliams](https://cassidoo.co/post/pocketcal-build-log/)), but is within the\nethos and deserves a mention here.  Its a single page calendar that is a static\nsite completely rendered on the front end, data is stored in the url as you\ninteract with it.  None of your data goes to a server.\n\n[![screenshot of https://pocketcal.com](https://shots.waylonwalker.com/shot/?url=https://pocketcal.com\u0026height=450\u0026width=800\u0026scaled_width=800\u0026scaled_height=450\u0026selectors=)](https://pocketcal.com)\n\n## qrcode\n\nToday I wanted to finish an article that I was on afk and It killed me to get\nit from my work computer to my phone, so I made a qrcode generator.  Paste in\nor type in your message and it shows up as a qr code live.  This one needed an\nevent listener for window resize since the library creates a rigid canvas qr\ncode that does not fit on the screen once you create it then resize the window.\n\n[![screenshot of https://b64.wayl.one](https://shots.waylonwalker.com/shot/?url=https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps%2F%3Ftext%3Dhttps%3A%2F%2Fshots.waylonwalker.com%2F\u0026width=450\u0026height=500)](https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps/)\n\nI even added query params to pass hex codes in for `color` and `bg`.\n\n[![screenshot of https://b64.wayl.one](https://shots.waylonwalker.com/shot/?url=https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps%2F%3Ftext%3Dhttps%3A%2F%2Fshots.waylonwalker.com%2F%26color%3Dff69b4%26bg%3Dffcc00\u0026width=450\u0026height=500)](https://qrcode.waylonwalker.com/?text=https://waylonwalker.com/replacing-google-search-apps-with-self-hosted-web-apps/)\n",
      "summary": "I'm working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...",
      "date_published": "2025-05-22T14:31:29Z",
      "date_modified": "2025-05-22T14:31:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta",
        "self-hosted",
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/web-wakelock/",
      "url": "https://waylonwalker.com/web-wakelock/",
      "title": "web wakelock",
      "content_html": "\u003cp\u003eI’m trying to replace my usage of google inline search apps with real apps,\ntoday I used a stopwatch to time some things out at work by opening stopwatch.\nThis was something I just wanted running in a tab on another screen, it was not\ntiming running code or anything, I was using it as a reminder to check browser\ncaches every 5 minutes or so for some testing.\u003c/p\u003e\n\u003cp\u003eSo tonight I whipped up a \u003ca href=\"https://stopwatch.wayl.one\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stopwatch.wayl.one.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stopwatch.wayl.one.ico\" class=\"has-avatar  has-avatar-before\"\u003estopwatch\u003c/a\u003e,\n\u003ca href=\"https://clock.wayl.one\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/clock.wayl.one.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/clock.wayl.one.ico\" class=\"has-avatar  has-avatar-before\"\u003eclock\u003c/a\u003e and \u003ca href=\"https://timer.wayl.one\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/timer.wayl.one.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/timer.wayl.one.ico\" class=\"has-avatar  has-avatar-before\"\u003etimer\u003c/a\u003e, all of\nwhich are using the wakelock API to keep the screen on while the app is\nrunning.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e// Wake Lock support\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kd\"\u003elet\u003c/span\u003e \u003cspan class=\"nx\"\u003ewakeLock\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003enull\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"kr\"\u003easync\u003c/span\u003e \u003cspan class=\"kd\"\u003efunction\u003c/span\u003e \u003cspan class=\"nx\"\u003erequestWakeLock\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"k\"\u003etry\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;wakeLock\u0026#39;\u003c/span\u003e \u003cspan class=\"k\"\u003ein\u003c/span\u003e \u003cspan class=\"nx\"\u003enavigator\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nx\"\u003ewakeLock\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kr\"\u003eawait\u003c/span\u003e \u003cspan class=\"nx\"\u003enavigator\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ewakeLock\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003erequest\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;screen\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nx\"\u003econsole\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003elog\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Wake lock acquired\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e \u003cspan class=\"k\"\u003ecatch\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003eerr\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nx\"\u003econsole\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eerror\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Wake lock error:\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nx\"\u003eerr\u003c/span\u003e\u003cspan class=\"p\"\u003e);\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003edocument\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eaddEventListener\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;visibilitychange\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u0026gt;\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"nx\"\u003ewakeLock\u003c/span\u003e \u003cspan class=\"o\"\u003e!==\u003c/span\u003e \u003cspan class=\"kc\"\u003enull\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan class=\"nb\"\u003edocument\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003evisibilityState\u003c/span\u003e \u003cspan class=\"o\"\u003e===\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;visible\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nx\"\u003erequestWakeLock\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e});\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nx\"\u003erequestWakeLock\u003c/span\u003e\u003cspan class=\"p\"\u003e();\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm trying to replace my usage of google inline search apps with real apps,\ntoday I used a stopwatch to time some things out at work by opening stopwatch.\nThis was something I just wanted running in a tab on another screen, it was not\ntiming running code or anything, I was using it as a reminder to check browser\ncaches every 5 minutes or so for some testing.\n\nSo tonight I whipped up a [stopwatch](https://stopwatch.wayl.one),\n[clock](https://clock.wayl.one) and [timer](https://timer.wayl.one), all of\nwhich are using the wakelock API to keep the screen on while the app is\nrunning.\n\n``` js\n    // Wake Lock support\n    let wakeLock = null;\n    async function requestWakeLock() {\n      try {\n        if ('wakeLock' in navigator) {\n          wakeLock = await navigator.wakeLock.request('screen');\n          console.log(\"Wake lock acquired\");\n        }\n      } catch (err) {\n        console.error(\"Wake lock error:\", err);\n      }\n    }\n\n    document.addEventListener(\"visibilitychange\", () =\u003e {\n      if (wakeLock !== null \u0026\u0026 document.visibilityState === \"visible\") {\n        requestWakeLock();\n      }\n    });\n\n    requestWakeLock();\n```\n",
      "summary": "I'm trying to replace my usage of google inline search apps with real apps, today I used a stopwatch to time some things out at work by opening stopwatch....",
      "date_published": "2025-05-21T20:50:22Z",
      "date_modified": "2025-05-21T20:50:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/pypeaday-dbztui/",
      "url": "https://waylonwalker.com/pypeaday-dbztui/",
      "title": "⭐ pypeaday dbztui",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/pypeaday/dbztui\" 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\"\u003edbztui\u003c/a\u003e from \u003ca href=\"https://github.com/pypeaday\" 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\"\u003epypeaday\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA DBZ TUI built with an early version of ninesUI and Windsurf\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [dbztui](https://github.com/pypeaday/dbztui) from [pypeaday](https://github.com/pypeaday).\n\nA DBZ TUI built with an early version of ninesUI and Windsurf\n",
      "summary": "I'm impressed by dbztui from pypeaday.",
      "date_published": "2025-05-19T16:40:31Z",
      "date_modified": "2025-05-19T16:40:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-636/",
      "url": "https://waylonwalker.com/thought-636/",
      "title": "💭 Python: The Documentary [OFFICIAL TRAILER] - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"pqBqdNIPrbo\" title=\"Python: The Documentary [OFFICIAL TRAILER] | Out now! 🚨\" playlabel=\"Play: Python: The Documentary [OFFICIAL TRAILER] | Out now! 🚨\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eExcited to hear this story, they have so many key players in the trailer this will be fantastic.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"pqBqdNIPrbo\" title=\"Python: The Documentary [OFFICIAL TRAILER] | Out now! 🚨\" playlabel=\"Play: Python: The Documentary [OFFICIAL TRAILER] | Out now! 🚨\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nExcited to hear this story, they have so many key players in the trailer this will be fantastic.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=pqBqdNIPrbo",
      "date_published": "2025-05-18T16:43:12Z",
      "date_modified": "2025-05-18T16:43:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/vhs-themes/",
      "url": "https://waylonwalker.com/vhs-themes/",
      "title": "vhs themes",
      "content_html": "\u003cp\u003eI’ve been working on\n\u003ca href=\"https://github.com/WaylonWalker/ninesui/blob/main/README.md\" 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\"\u003eninesui\u003c/a\u003e,\ninspired by k9s see \u003ca href=\"https://thoughts.waylonwalker.com/post/633\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethoughts-633\u003c/a\u003e.\nI want a good flow for making video for the readme and I am using \u003ca href=\"https://charm.sh/apps/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/charm.sh.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/charm.sh.ico\" class=\"has-avatar  has-avatar-before\"\u003echarm.sh\u003c/a\u003e’s \u003ca href=\"https://github.com/charmbracelet/vhs\" 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\"\u003evhs\u003c/a\u003e for this.\nIts running in an archBTW distrobox and looks gawdaweful.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e86047ed-6881-43f7-8e3a-30411d51afaf.mp4\" class=\"glightbox-link\" aria-label=\"sort.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e86047ed-6881-43f7-8e3a-30411d51afaf.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e86047ed-6881-43f7-8e3a-30411d51afaf.mp4\" type=\"video/mp4\"\u003esort.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe over saturated colors give it a really retro look, seems fine, but not my\ncup of tea.  I tried to change the textual theme to \u003ccode\u003etokyo-night\u003c/code\u003e and it might\nhave made it a bit better, but still over-saturated.\u003c/p\u003e\n\u003ch2 id=\"after\"\u003eAfter \u003ca href=\"#after\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat I found is that vhs has themes, setting it to \u003ccode\u003edracula\u003c/code\u003e made everything much better.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e# sort.tape\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOutput assets/sort.mp4\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOutput assets/sort.gif\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eRequire echo\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSet Shell \u0026#34;bash\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSet FontSize 32\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSet Width 1920\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSet Height 1080\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ Set Theme \u0026#39;Dracula\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ada8f04d-88ac-41c3-9983-d9e849cc13ad.mp4\" class=\"glightbox-link\" aria-label=\"sort.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/ada8f04d-88ac-41c3-9983-d9e849cc13ad.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/ada8f04d-88ac-41c3-9983-d9e849cc13ad.mp4\" type=\"video/mp4\"\u003esort.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"ninesui\"\u003eNinesUI \u003ca href=\"#ninesui\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m using these in my \u003ca href=\"https://github.com/WaylonWalker/ninesui\" 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\"\u003eninesui\u003c/a\u003e\nproject, right now they are in the readme, but maybe some docs will grow\neventually.  Right now its hardcore explore phase.\u003c/p\u003e\n",
      "content_text": "\n\nI've been working on\n[ninesui](https://github.com/WaylonWalker/ninesui/blob/main/README.md),\ninspired by k9s see [thoughts-633](https://thoughts.waylonwalker.com/post/633).\nI want a good flow for making video for the readme and I am using [charm.sh](https://charm.sh/apps/)'s [vhs](https://github.com/charmbracelet/vhs) for this.\nIts running in an archBTW distrobox and looks gawdaweful.\n\n![sort.mp4](https://dropper.waylonwalker.com/api/file/e86047ed-6881-43f7-8e3a-30411d51afaf.mp4)\n\nThe over saturated colors give it a really retro look, seems fine, but not my\ncup of tea.  I tried to change the textual theme to `tokyo-night` and it might\nhave made it a bit better, but still over-saturated.\n\n## After\n\nWhat I found is that vhs has themes, setting it to `dracula` made everything much better.\n\n``` diff\n# sort.tape\nOutput assets/sort.mp4\nOutput assets/sort.gif\n\nRequire echo\n\nSet Shell \"bash\"\nSet FontSize 32\nSet Width 1920\nSet Height 1080\n+ Set Theme 'Dracula'\n```\n\n![sort.mp4](https://dropper.waylonwalker.com/api/file/ada8f04d-88ac-41c3-9983-d9e849cc13ad.mp4)\n\n## NinesUI\n\nI'm using these in my [ninesui](https://github.com/WaylonWalker/ninesui)\nproject, right now they are in the readme, but maybe some docs will grow\neventually.  Right now its hardcore explore phase.\n",
      "summary": "I've been working on ninesui, inspired by k9s see thoughts-633. I want a good flow for making video for the readme and I am using charm.sh's vhs for this....",
      "date_published": "2025-05-16T08:24:51Z",
      "date_modified": "2025-05-16T08:24:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "terminal",
        "tui",
        "vhs"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-635/",
      "url": "https://waylonwalker.com/thought-635/",
      "title": "💭 Chris Biscardi's Digital Garden",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.christopherbiscardi.com/wtf-is-kubernetes\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.christopherbiscardi.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.christopherbiscardi.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003echristopherbiscardi.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting take on kubernetes from a front end perspective.  All valid arguments to me, and really the answer to any do you \u003cstrong\u003eneed\u003c/strong\u003e to any specific implementation of tech is probably no.  We got along just fine before k8s ever existed and you still can, but its really nice in a lot of cases.  If your skills lean toward backend or infrastructure I encourage you to give it a try.\u003c/p\u003e\n\u003ch2 id=\"k8s--distros-\"\u003ek8s \u003cem\u003edistros\u003c/em\u003e \u003ca href=\"#k8s--distros-\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere are a lot of beginner friendly k8s distros that you can setup with relative ease, kind and k0s are great for single node, If you want multi-node k3s is what I generally use.  If you want a very lightweight OS that you only interact with through an api, and has a very small attack surface talos is an amazing product.\u003c/p\u003e\n\u003ch2 id=\"when-else-might-you-want-k8s\"\u003eWhen else might you want k8s \u003ca href=\"#when-else-might-you-want-k8s\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eInternal, on-prem, \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e.  If you are trying to avoid the cloud for cost, rules, regulations, red tape, kubernetes is a great option to manage your container workflows yourself without needing to have a cloud budget, get approvals and sign offs on running workflows in a public cloud.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.christopherbiscardi.com/wtf-is-kubernetes\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003echristopherbiscardi.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting take on kubernetes from a front end perspective.  All valid arguments to me, and really the answer to any do you **need** to any specific implementation of tech is probably no.  We got along just fine before k8s ever existed and you still can, but its really nice in a lot of cases.  If your skills lean toward backend or infrastructure I encourage you to give it a try.  \n\n\n## k8s _distros_\n\nThere are a lot of beginner friendly k8s distros that you can setup with relative ease, kind and k0s are great for single node, If you want multi-node k3s is what I generally use.  If you want a very lightweight OS that you only interact with through an api, and has a very small attack surface talos is an amazing product.\n\n## When else might you want k8s\n\nInternal, on-prem, self hosted.  If you are trying to avoid the cloud for cost, rules, regulations, red tape, kubernetes is a great option to manage your container workflows yourself without needing to have a cloud budget, get approvals and sign offs on running workflows in a public cloud.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.christopherbiscardi.com/wtf-is-kubernetes",
      "date_published": "2025-05-12T13:05:33Z",
      "date_modified": "2025-05-12T13:05:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/2x2-test-board/",
      "url": "https://waylonwalker.com/shots/2x2-test-board/",
      "title": "Custom Keyboard Keycaps",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"http://dropper.waylonwalker.com/file/ee3d4a1b-0c44-4011-ba67-8a0a146f6e05.webp\" class=\"glightbox-link\" aria-label=\"Two sets of custom mechanical keyboard keycaps, one set of four keys and another set of three keys, are displayed on a wooden surface.\"\u003e\u003cimg class=\"glightbox\" src=\"http://dropper.waylonwalker.com/file/ee3d4a1b-0c44-4011-ba67-8a0a146f6e05.webp\" alt=\"Two sets of custom mechanical keyboard keycaps, one set of four keys and another set of three keys, are displayed on a wooden surface.\"/ data-glightbox=\"description: Two sets of custom mechanical keyboard keycaps, one set of four keys and another set of three keys, are displayed on a wooden surface.\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eA fresh print of caps and a 2x2 test board.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Two sets of custom mechanical keyboard keycaps, one set of four keys and another set of three keys, are displayed on a wooden surface.](http://dropper.waylonwalker.com/file/ee3d4a1b-0c44-4011-ba67-8a0a146f6e05.webp)\n\u003e A fresh print of caps and a 2x2 test board.\n\n",
      "summary": "A comparison of different custom mechanical keyboard keycap sets.",
      "image": "http://dropper.waylonwalker.com/file/ee3d4a1b-0c44-4011-ba67-8a0a146f6e05.webp",
      "date_published": "2025-05-11T11:39:40Z",
      "date_modified": "2025-05-11T11:39:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printed",
        "3d-printing",
        "keyboard",
        "keycaps",
        "mechanical",
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/m9a-devlog-1/",
      "url": "https://waylonwalker.com/m9a-devlog-1/",
      "title": "m9a devlog 1",
      "content_html": "\u003cp\u003eIt’s sad to see textualize.io close the doors, but textual is still alive and\nmaintained as a n open source project.  I tried to use it very early, and\nstruggled, this was before docs and tutorials really existed, before a lot of\nthe widgets and components existed.  Then as we all do I got busy and moved on\nto other things in life and did not have the capacity to build TUIs.\u003c/p\u003e\n\u003ch2 id=\"i-like-tuis\"\u003eI like tuis \u003ca href=\"#i-like-tuis\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI like tuis, I like staying in the terminal.  I use\n\u003ca href=\"https://github.com/gokcehan/lf\" 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\"\u003elf\u003c/a\u003e daily to move files around when I\nwant something more than \u003ccode\u003emv\u003c/code\u003e and \u003ccode\u003ecp\u003c/code\u003e.  I use\n\u003ca href=\"https://github.com/derailed/k9s\" 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\"\u003ek9s\u003c/a\u003e hourly to monitor and manage my\nkubernetes cluster.\u003c/p\u003e\n\u003ch2 id=\"are-they-worth-the-effort\"\u003eAre they worth the effort?? \u003ca href=\"#are-they-worth-the-effort\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs awesome as tui’s are, they are more effort to build, and less automatable.\nI feel like the first stage into automation of a project really needs to be a\ngood cli, and this is often good enough for the project and I move on.\u003c/p\u003e\n\u003ch2 id=\"m9a-em---nine---ah\"\u003em9a (em - nine - ah) \u003ca href=\"#m9a-em---nine---ah\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003einspired by k9s\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eLike I said I really like k9s and use it all the time, It really makes running\nkubectl commands a breeze and much less verbose.  I don’t know how useful this\nwill be, but as a learning exercise I am working on a k9s experience for my\nblog generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webm\" class=\"glightbox-link\" aria-label=\"m9a-1-trimmed.webm\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webm\" type=\"video/webm\"\u003em9a-1-trimmed.webm\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"learning\"\u003eLearning \u003ca href=\"#learning\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo far this is just for learning and not quite the most useful thing, I am not\nsure if there is a way to do it, but I am interested in the idea of some sort\nof framework (maybe just widgets) that can more easily turn pydantic objects\ninto this kind of tui.  I don’t quite know how it would work, or if it could\nwork, for now just exploring the idea, and I think I hit a fairly crude clone\nof k9s so far.\u003c/p\u003e\n",
      "content_text": "\nIt's sad to see textualize.io close the doors, but textual is still alive and\nmaintained as a n open source project.  I tried to use it very early, and\nstruggled, this was before docs and tutorials really existed, before a lot of\nthe widgets and components existed.  Then as we all do I got busy and moved on\nto other things in life and did not have the capacity to build TUIs.\n\n## I like tuis\n\nI like tuis, I like staying in the terminal.  I use\n[lf](https://github.com/gokcehan/lf) daily to move files around when I\nwant something more than `mv` and `cp`.  I use\n[k9s](https://github.com/derailed/k9s) hourly to monitor and manage my\nkubernetes cluster.\n\n## Are they worth the effort??\n\nAs awesome as tui's are, they are more effort to build, and less automatable.\nI feel like the first stage into automation of a project really needs to be a\ngood cli, and this is often good enough for the project and I move on.\n\n## m9a (em - nine - ah)\n\n_inspired by k9s_\n\nLike I said I really like k9s and use it all the time, It really makes running\nkubectl commands a breeze and much less verbose.  I don't know how useful this\nwill be, but as a learning exercise I am working on a k9s experience for my\nblog generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e.\n\n![m9a-1-trimmed.webm](https://dropper.waylonwalker.com/api/file/53671f5a-acc5-4d17-aa2d-2e9ac6db5674.webm)\n\n## Learning\n\nSo far this is just for learning and not quite the most useful thing, I am not\nsure if there is a way to do it, but I am interested in the idea of some sort\nof framework (maybe just widgets) that can more easily turn pydantic objects\ninto this kind of tui.  I don't quite know how it would work, or if it could\nwork, for now just exploring the idea, and I think I hit a fairly crude clone\nof k9s so far.\n",
      "summary": "It's sad to see textualize.io close the doors, but textual is still alive and maintained as a n open source project. I tried to use it very early, and...",
      "date_published": "2025-05-11T09:33:44Z",
      "date_modified": "2025-05-11T09:33:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "markata",
        "python",
        "textual",
        "tui"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-634/",
      "url": "https://waylonwalker.com/thought-634/",
      "title": "💭 GrafanaCON 2025 Keynote Livestream - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"JYVf-Z320Y0\" title=\"GrafanaCON 2025 Keynote Livestream\" playlabel=\"Play: GrafanaCON 2025 Keynote Livestream\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eJust listened to this as I am really starting to get into grafana and feel like there isn’t a mountain of setup this time around realizing how much of my stack is brand new.  Drill Down and Alloy are both new and key to my setup.  The Ai integrations at the end sound wicked good, I will be interested if you can do similar things with an MCP vs how much proprietary  stuff needs grafana cloud.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"JYVf-Z320Y0\" title=\"GrafanaCON 2025 Keynote Livestream\" playlabel=\"Play: GrafanaCON 2025 Keynote Livestream\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nJust listened to this as I am really starting to get into grafana and feel like there isn't a mountain of setup this time around realizing how much of my stack is brand new.  Drill Down and Alloy are both new and key to my setup.  The Ai integrations at the end sound wicked good, I will be interested if you can do similar things with an MCP vs how much proprietary  stuff needs grafana cloud.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=JYVf-Z320Y0",
      "date_published": "2025-05-11T02:59:15Z",
      "date_modified": "2025-05-11T02:59:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "observability",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-633/",
      "url": "https://waylonwalker.com/thought-633/",
      "title": "💭 The future of Textualize - Textual",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://textual.textualize.io/blog/2025/05/07/the-future-of-textualize/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://raw.githubusercontent.com/Textualize/textual/main/imgs/textual.png\" alt=\"Textual - The future of Textualize — Textual is a TUI framework for Python, inspired by modern web development.\" loading=\"lazy\"/ data-glightbox=\"description: Textual - The future of Textualize — Textual is a TUI framework for Python, inspired by modern web development.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTextual - The future of Textualize\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTextual is a TUI framework for Python, inspired by modern web development.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTextual Documentation · textual.textualize.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUltimately though a business needs a product. Textual has always been a solution in search of a problem. And while there are plenty of problems to which Textual is a fantastic solution, we weren’t able to find a shared problem or pain-point to build a viable business around.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI can totally see this. Finding a marketable business idea is not easy, working in the developer space where everyone wants to do it themselves is no better.  Textual specifically I could see, I really wanted to build things on it as it came out, I had ideas, it was hard to use at the time and changing, so I took a break, got busy with far too many other things, and really I ’m good with rich most of the time.\u003c/p\u003e\n\u003cp\u003eI daily use k9s, its absolutely amazing at what it does and appreciate that I could build something like it in python, its just hard to justify the time investment for the things I tend to work on.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWhich is why Textualize, the company, will be wrapping up in the next few weeks.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eDamn, that hit hard, its been an adventure watching textual get built, things like posting look fantastic!  Glad to see that its still alive with open source and Will is not leaving, but there will be no company.  This likely means significanly less velocity, but it might mean that not being tied to making money other opportunities open up.\u003c/p\u003e\n\u003cp\u003eThanks for giving us amazing terminal products Will.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://textual.textualize.io/blog/2025/05/07/the-future-of-textualize/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://raw.githubusercontent.com/Textualize/textual/main/imgs/textual.png\" alt=\"Textual - The future of Textualize — Textual is a TUI framework for Python, inspired by modern web development.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTextual - The future of Textualize\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTextual is a TUI framework for Python, inspired by modern web development.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTextual Documentation \u0026middot; textual.textualize.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Ultimately though a business needs a product. Textual has always been a solution in search of a problem. And while there are plenty of problems to which Textual is a fantastic solution, we weren't able to find a shared problem or pain-point to build a viable business around. \n\nI can totally see this. Finding a marketable business idea is not easy, working in the developer space where everyone wants to do it themselves is no better.  Textual specifically I could see, I really wanted to build things on it as it came out, I had ideas, it was hard to use at the time and changing, so I took a break, got busy with far too many other things, and really I 'm good with rich most of the time.\n\nI daily use k9s, its absolutely amazing at what it does and appreciate that I could build something like it in python, its just hard to justify the time investment for the things I tend to work on.\n\n\u003e Which is why Textualize, the company, will be wrapping up in the next few weeks.\n\nDamn, that hit hard, its been an adventure watching textual get built, things like posting look fantastic!  Glad to see that its still alive with open source and Will is not leaving, but there will be no company.  This likely means significanly less velocity, but it might mean that not being tied to making money other opportunities open up.\n\n\nThanks for giving us amazing terminal products Will.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://textual.textualize.io/blog/2025/05/07/the-future-of-textualize/",
      "date_published": "2025-05-10T14:27:58Z",
      "date_modified": "2025-05-10T14:27:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-632/",
      "url": "https://waylonwalker.com/thought-632/",
      "title": "💭 What's next? – Will McGugan – Will McGugan's essays",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://willmcgugan.github.io/whats-next/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://willmcgugan.github.io/images/will2025.jpeg\" alt=\"What’s next? — Some years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own creation is something software engineers dream of. Working on Textualize has been a blast, but it has come to an end. Perhaps not in the way I would have liked, but I am satisfied I have contributed something awesome to the tech community.\" loading=\"lazy\"/ data-glightbox=\"description: What’s next? — Some years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own creation is something software engineers dream of. Working on Textualize has been a blast, but it has come to an end. Perhaps not in the way I would have liked, but I am satisfied I have contributed something awesome to the tech community.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhat’s next?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSome years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own cre...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWill McGugan · willmcgugan.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eSo it’s back to plan A: taking a year off. I plan on using this time to focus on my health–something I haven’t prioritized while working as a CEO / Founder of a startup.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eWish you the best Will, you have given us textual and rich, and from what I can tell left it in some great hands.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAll I can say for certain is that I would like to write more. Writing scratches many of the same itches as software development, and it is a skill I’d like to nurture.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eGo get em Will, write to your hearts desire, and resist the urge to make an SSG company this time.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://willmcgugan.github.io/whats-next/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://willmcgugan.github.io/images/will2025.jpeg\" alt=\"What’s next? — Some years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own creation is something software engineers dream of. Working on Textualize has been a blast, but it has come to an end. Perhaps not in the way I would have liked, but I am satisfied I have contributed something awesome to the tech community.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhat’s next?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSome years ago I had the opportunity to work fulltime on project of mine. This was at a time where I fully intended to take a year off, but being able to make a living off a project of your own cre...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWill McGugan \u0026middot; willmcgugan.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e So it’s back to plan A: taking a year off. I plan on using this time to focus on my health–something I haven’t prioritized while working as a CEO / Founder of a startup.\n\nWish you the best Will, you have given us textual and rich, and from what I can tell left it in some great hands.\n\n\u003e All I can say for certain is that I would like to write more. Writing scratches many of the same itches as software development, and it is a skill I’d like to nurture.\n\nGo get em Will, write to your hearts desire, and resist the urge to make an SSG company this time.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://willmcgugan.github.io/whats-next/",
      "date_published": "2025-05-10T14:08:45Z",
      "date_modified": "2025-05-10T14:08:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-631/",
      "url": "https://waylonwalker.com/thought-631/",
      "title": "💭 Too much magic – Will McGugan – Will McGugan's essays",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://willmcgugan.github.io/too-much-magic/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://willmcgugan.github.io/images/will2025.jpeg\" alt=\"Too much magic — A common criticisms of frameworks like Textual is that they have “too much magic”.\" loading=\"lazy\"/ data-glightbox=\"description: Too much magic — A common criticisms of frameworks like Textual is that they have “too much magic”.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eToo much magic\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA common criticisms of frameworks like Textual is that they have “too much magic”.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWill McGugan · willmcgugan.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNow “too much magic” is not the same thing as “bad magic”, although they are often conflated. Bad magic is when the implementation details leak out from the level below. This can manifest itself as cryptic errors that reference the magic’s implementation.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://willmcgugan.github.io/too-much-magic/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://willmcgugan.github.io/images/will2025.jpeg\" alt=\"Too much magic — A common criticisms of frameworks like Textual is that they have “too much magic”.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eToo much magic\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA common criticisms of frameworks like Textual is that they have “too much magic”.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eWill McGugan \u0026middot; willmcgugan.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Now “too much magic” is not the same thing as “bad magic”, although they are often conflated. Bad magic is when the implementation details leak out from the level below. This can manifest itself as cryptic errors that reference the magic’s implementation. \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://willmcgugan.github.io/too-much-magic/",
      "date_published": "2025-05-10T01:49:34Z",
      "date_modified": "2025-05-10T01:49:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-630/",
      "url": "https://waylonwalker.com/thought-630/",
      "title": "💭 Markdown's biggest hater | Knut Melvær - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"TACa-vtHQ9k\" title=\"Markdown\u0026#39;s biggest hater | Knut Melvær\" playlabel=\"Play: Markdown\u0026#39;s biggest hater | Knut Melvær\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDang Strong takes against markdown here with a strong push for bespoke content models/structures.  This idea is completely foreign and wild to me.  I get it that markdown has its issues with flavors, add ons and what not, but overall its mostly transportable, its a skill that works most content sites and writing tools.  I am so far on the other side that I seek out tools with markdown as an option and lean away from wsiwyg tools with specialized data formats on the backend.\u003c/p\u003e\n\u003cp\u003eI’ll end with, I’m also a dev that creates very simplified content and maybe seeing the backend of a site with lots of custom fields would be very eye opening for me.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"TACa-vtHQ9k\" title=\"Markdown\u0026#39;s biggest hater | Knut Melvær\" playlabel=\"Play: Markdown\u0026#39;s biggest hater | Knut Melvær\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDang Strong takes against markdown here with a strong push for bespoke content models/structures.  This idea is completely foreign and wild to me.  I get it that markdown has its issues with flavors, add ons and what not, but overall its mostly transportable, its a skill that works most content sites and writing tools.  I am so far on the other side that I seek out tools with markdown as an option and lean away from wsiwyg tools with specialized data formats on the backend.\n\nI'll end with, I'm also a dev that creates very simplified content and maybe seeing the backend of a site with lots of custom fields would be very eye opening for me.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=TACa-vtHQ9k\u0026t=2s",
      "date_published": "2025-05-10T00:52:59Z",
      "date_modified": "2025-05-10T00:52:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "markdown",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-629/",
      "url": "https://waylonwalker.com/thought-629/",
      "title": "💭 Week Links №2: April 2025 - daverupert.com",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daverupert.com/2025/05/week-links-2/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/daverupert.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/daverupert.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWeek Links №2: April 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLast year I attempted to do some newsletter-style link aggregation… that good intention imploded spectacularly. But I switched to Obsidian this month and now I have a better system for aggregatin...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edaverupert.com · daverupert.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLast year I attempted to do some newsletter-style link aggregation… that good intention imploded spectacularly. But I switched to Obsidian this month and now I have a better system for aggregating links (post on that coming later). Inside this issue you’ll find some games, some \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e server hardware, some AI discourse™, some musical instruments, and more.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eThis hits so close to home, I even went through the effort of making a weeknotes script, one weeknote post.  I also was inspired by obsidian but it didn’t work out for me, so my script uses data from markata.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b1a5212b-846f-4144-82ab-51cd9ace086d.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b1a5212b-846f-4144-82ab-51cd9ace086d.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daverupert.com/2025/05/week-links-2/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWeek Links №2: April 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLast year I attempted to do some newsletter-style link aggregation… that good intention imploded spectacularly. But I switched to Obsidian this month and now I have a better system for aggregatin...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edaverupert.com \u0026middot; daverupert.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Last year I attempted to do some newsletter-style link aggregation… that good intention imploded spectacularly. But I switched to Obsidian this month and now I have a better system for aggregating links (post on that coming later). Inside this issue you’ll find some games, some homelab server hardware, some AI discourse™, some musical instruments, and more.\n\nThis hits so close to home, I even went through the effort of making a weeknotes script, one weeknote post.  I also was inspired by obsidian but it didn't work out for me, so my script uses data from markata.\n\n![image](https://dropper.waylonwalker.com/api/file/b1a5212b-846f-4144-82ab-51cd9ace086d.webp)\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://daverupert.com/2025/05/week-links-2/",
      "date_published": "2025-05-09T13:49:04Z",
      "date_modified": "2025-05-09T13:49:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-627/",
      "url": "https://waylonwalker.com/thought-627/",
      "title": "💭 What ChatGPT is NOT - Tech Raven Blog",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.techravenconsulting.com/what-chatgpt-is-not/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://blog.techravenconsulting.com/wp-content/uploads/2023/05/not-excited-ai.jpg\" alt=\"What ChatGPT is NOT - Tech Raven Blog — There is a lot of excitement about ChatGPT and how it allows us to interact with information and technology. I am actually excited that it now exists and still, I think it is being way overhyped. I know, SHOCKER, Silicon Valley overhypes a new technology. I have seen a bunch of things said, even by\" loading=\"lazy\"/ data-glightbox=\"description: What ChatGPT is NOT - Tech Raven Blog — There is a lot of excitement about ChatGPT and how it allows us to interact with information and technology. I am actually excited that it now exists and still, I think it is being way overhyped. I know, SHOCKER, Silicon Valley overhypes a new technology. I have seen a bunch of things said, even by\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhat ChatGPT is NOT - Tech Raven Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThere is a lot of excitement about ChatGPT and how it allows us to interact with information and technology. I am actually excited that it now exists and still, I think it is being way overhyped. I...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTech Raven Blog - · blog.techravenconsulting.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eDo you remember regression models from college: given some data, you find a best fit line that allows you to predict Y given X. At the end of the day, ChatGPT, and LLMs in general, are the same thing as the regression model – it’s just that ChatGPT is the largest and fanciest model we currently have to model language and information.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI really am coming to the idea of calling it a “word calculator”, this seems to be the most succinct description of llms that the lay person can comprehend and relate to.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChatGPT does not hallucinate or become unhinged\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI think Steve goes much deeper on this in his \u003ca href=\"https://www.fafo.fm/vectorizing-your-databases-with-steve-pousty/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.fafo.fm.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.fafo.fm.jpg\" class=\"has-avatar  has-avatar-before\"\u003eintervew on fafo.fm\u003c/a\u003e.  They describe it more as a pleaser or “yes man”  essentially all the companies that are building these models want to give the “best” answer, better than their competitors.  With this comes the risk of it being completely wrong, they are designed to always give an answer.\u003c/p\u003e\n\u003cp\u003eOn that episode they talk about how each word has a statistical probability tied to it and in some visualizations you can see the confidence, in almost every example of “hallucination” you will find some set of very poor confidence followed by BS.  Thats not to say that every time there is low confidence there is BS though, that is why this is such a hard problem.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eChatGPT is not a replacement for search\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI’ve become really bad at this.  This is slowly becoming my starting point for a lot of research, not my only research, but the first wet finger in the air.  Most often done with low effort, low risk tasks.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIn ChatGPT, just like in the shelf full of the Encyclopedia Britannica I had when I was a kid, information on topics has been reduced to good summaries and presented in logical format. In this case we have removed the human authors and replaced them with a very large neural network.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI really like this description and it matches up with my last comment.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.techravenconsulting.com/what-chatgpt-is-not/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://blog.techravenconsulting.com/wp-content/uploads/2023/05/not-excited-ai.jpg\" alt=\"What ChatGPT is NOT - Tech Raven Blog — There is a lot of excitement about ChatGPT and how it allows us to interact with information and technology. I am actually excited that it now exists and still, I think it is being way overhyped. I know, SHOCKER, Silicon Valley overhypes a new technology. I have seen a bunch of things said, even by\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhat ChatGPT is NOT - Tech Raven Blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThere is a lot of excitement about ChatGPT and how it allows us to interact with information and technology. I am actually excited that it now exists and still, I think it is being way overhyped. I...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTech Raven Blog - \u0026middot; blog.techravenconsulting.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n\u003e Do you remember regression models from college: given some data, you find a best fit line that allows you to predict Y given X. At the end of the day, ChatGPT, and LLMs in general, are the same thing as the regression model – it’s just that ChatGPT is the largest and fanciest model we currently have to model language and information.\n\n\nI really am coming to the idea of calling it a \"word calculator\", this seems to be the most succinct description of llms that the lay person can comprehend and relate to.\n\n\u003e ChatGPT does not hallucinate or become unhinged\n\nI think Steve goes much deeper on this in his [intervew on fafo.fm](https://www.fafo.fm/vectorizing-your-databases-with-steve-pousty/).  They describe it more as a pleaser or \"yes man\"  essentially all the companies that are building these models want to give the \"best\" answer, better than their competitors.  With this comes the risk of it being completely wrong, they are designed to always give an answer.\n\nOn that episode they talk about how each word has a statistical probability tied to it and in some visualizations you can see the confidence, in almost every example of \"hallucination\" you will find some set of very poor confidence followed by BS.  Thats not to say that every time there is low confidence there is BS though, that is why this is such a hard problem.\n\n\u003e ChatGPT is not a replacement for search\n\nI've become really bad at this.  This is slowly becoming my starting point for a lot of research, not my only research, but the first wet finger in the air.  Most often done with low effort, low risk tasks.\n\n\u003e In ChatGPT, just like in the shelf full of the Encyclopedia Britannica I had when I was a kid, information on topics has been reduced to good summaries and presented in logical format. In this case we have removed the human authors and replaced them with a very large neural network.\n\nI really like this description and it matches up with my last comment.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.techravenconsulting.com/what-chatgpt-is-not/",
      "date_published": "2025-05-09T13:45:18Z",
      "date_modified": "2025-05-09T13:45:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-626/",
      "url": "https://waylonwalker.com/thought-626/",
      "title": "💭 “I’d rather read the prompt” – Chris Coyier",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/05/08/id-rather-read-the-prompt/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJ0eHQiOiImIzgyMjA7SSYjODIxNztkIHJhdGhlciByZWFkIHRoZSBwcm9tcHQmIzgyMjE7IiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.W9bhDbBZweMngafWgIePBE_Oh-bseQDYOjq6RtAwCN8MQ\" alt=\"“I’d rather read the prompt” — Clayton Ramsey grades student assignments and gets papers that are just obviously ChatGPT output. I think any of us can spot it by now: awkward repetitive prose, heavy on bullet points with bold in…\" loading=\"lazy\"/ data-glightbox=\"description: “I’d rather read the prompt” — Clayton Ramsey grades student assignments and gets papers that are just obviously ChatGPT output. I think any of us can spot it by now: awkward repetitive prose, heavy on bullet points with bold in…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e“I’d rather read the prompt”\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eClayton Ramsey grades student assignments and gets papers that are just obviously ChatGPT output. I think any of us can spot it by now: awkward repetitive prose, heavy on bullet points with bold in…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier · chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ll triple down on the link-blog chain here, see this one going around all over this week and finally had time to read through when it hit my rss reader via Chris.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIt should come as no surprise that nearly every vibe-coded app on the Internet struggles with security issues; look no further than the vibe-coded recipe app that leaks its OpenAI keys. Every time one generates code by prompt, they create a new stillborn program; \u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003evibe coding\u003c/a\u003e is the art of stitching together their corpses into Frankenstein’s monster.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eDamn, that is a strong statement, stitching together the corpses, strong statement here.  The OpenAI key thing feels kind of obvious to me, every set of docs, blogs and examples on the internet need to be runnable for people to learn and try out new tech easy, putting secrets in the wrong place is easy, putting them somewhere that you can decode them without sharing them is hard team specific, app specific, and so nuanced to your architecture that its rarely included in public examples.  I imagine there are a lot of good code example out there that follow good practice, but it feels like that might have missed the training data here.\u003c/p\u003e\n\u003cp\u003eIt alrso reminds me of \u003ca href=\"https://thoughts.waylonwalker.com/post/625\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/thoughts.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ethought-625-the-rule\u003c/a\u003e, where prime talks about small apps being happy and easy and at some point every change is hard, and likely  impossible to vibe code.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThe whole point of making creative work is to share one’s own experience - if there’s no experience to share, why bother? If it’s not worth writing, it’s not worth reading.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003ellms are not capable of being creative, they are word calculators, statistical models that predict the next likely word based on their experience, they are not capable of new discoveries.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/05/08/id-rather-read-the-prompt/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJ0eHQiOiImIzgyMjA7SSYjODIxNztkIHJhdGhlciByZWFkIHRoZSBwcm9tcHQmIzgyMjE7IiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.W9bhDbBZweMngafWgIePBE_Oh-bseQDYOjq6RtAwCN8MQ\" alt=\"“I’d rather read the prompt” — Clayton Ramsey grades student assignments and gets papers that are just obviously ChatGPT output. I think any of us can spot it by now: awkward repetitive prose, heavy on bullet points with bold in…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e“I’d rather read the prompt”\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eClayton Ramsey grades student assignments and gets papers that are just obviously ChatGPT output. I think any of us can spot it by now: awkward repetitive prose, heavy on bullet points with bold in…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier \u0026middot; chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'll triple down on the link-blog chain here, see this one going around all over this week and finally had time to read through when it hit my rss reader via Chris.\n\n\u003e  It should come as no surprise that nearly every vibe-coded app on the Internet struggles with security issues; look no further than the vibe-coded recipe app that leaks its OpenAI keys. Every time one generates code by prompt, they create a new stillborn program; vibe coding is the art of stitching together their corpses into Frankenstein’s monster.\n\nDamn, that is a strong statement, stitching together the corpses, strong statement here.  The OpenAI key thing feels kind of obvious to me, every set of docs, blogs and examples on the internet need to be runnable for people to learn and try out new tech easy, putting secrets in the wrong place is easy, putting them somewhere that you can decode them without sharing them is hard team specific, app specific, and so nuanced to your architecture that its rarely included in public examples.  I imagine there are a lot of good code example out there that follow good practice, but it feels like that might have missed the training data here.\n\n It alrso reminds me of [thought-625-the-rule](https://thoughts.waylonwalker.com/post/625), where prime talks about small apps being happy and easy and at some point every change is hard, and likely  impossible to vibe code.\n\n\u003e The whole point of making creative work is to share one’s own experience - if there’s no experience to share, why bother? If it’s not worth writing, it’s not worth reading.\n\nllms are not capable of being creative, they are word calculators, statistical models that predict the next likely word based on their experience, they are not capable of new discoveries.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://chriscoyier.net/2025/05/08/id-rather-read-the-prompt/",
      "date_published": "2025-05-09T13:09:30Z",
      "date_modified": "2025-05-09T13:09:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-625/",
      "url": "https://waylonwalker.com/thought-625/",
      "title": "💭 The Rule - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"emlDGTXuhts\" title=\"The Rule\" playlabel=\"Play: The Rule\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eUnder 2000 everything is happy, green field.  Any decision you have made is relatively easy to back out of (barring you making a library with downstream users), but as you go, regret kicks in.  Regret we didn’t make that pydantic 2 upgrade earlier, as new features become more apealing.  Regret that we chose sqlite for simplicity, speed, agility, and now we might need robust and distributed.  Regret that you chose a front end framework, or to have a front end at all to a backend problem.  Regret that you put 6 layers of abstraction on your db early on and now that you understand the problem you want different abstractions, but all of your endpoints deeply depend on the current one.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003eVibe coding\u003c/a\u003e will not save you, it will only make these wrong decisions for you without the context that you have.  You will hate it’s decisions more because you had no input into some of them.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"emlDGTXuhts\" title=\"The Rule\" playlabel=\"Play: The Rule\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nUnder 2000 everything is happy, green field.  Any decision you have made is relatively easy to back out of (barring you making a library with downstream users), but as you go, regret kicks in.  Regret we didn't make that pydantic 2 upgrade earlier, as new features become more apealing.  Regret that we chose sqlite for simplicity, speed, agility, and now we might need robust and distributed.  Regret that you chose a front end framework, or to have a front end at all to a backend problem.  Regret that you put 6 layers of abstraction on your db early on and now that you understand the problem you want different abstractions, but all of your endpoints deeply depend on the current one.\n\nVibe coding will not save you, it will only make these wrong decisions for you without the context that you have.  You will hate it's decisions more because you had no input into some of them.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/emlDGTXuhts",
      "date_published": "2025-05-09T13:01:16Z",
      "date_modified": "2025-05-09T13:01:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "dev",
        "llm",
        "thought",
        "vibes"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-624/",
      "url": "https://waylonwalker.com/thought-624/",
      "title": "💭 THE STANDUP - Coding DIRTY Episode 7",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"hbEWfC4k-Gw\" title=\"🚨🚨 THE STANDUP - Coding DIRTY Episode 7 🚨🚨\" playlabel=\"Play: 🚨🚨 THE STANDUP - Coding DIRTY Episode 7 🚨🚨\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003e“Gradually roll out your releases to a small group of people”\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e~ roughly what prime said (I’m listening live)\u003c/p\u003e\n\u003cp\u003eThis really hit home with me, tests can be so good at making sure that we dont repeat bugs and that laser focused things work, tests are generally small and focused, but this does not replace some sort of integration testing.  These days very few things are written as a monolith, and hence there are a lot of interactions that really need to play well together accross various systems.\u003c/p\u003e\n\u003cp\u003eThey call out Crowdstrike here, which took down the world blue screening critical windows systems everywhere in 2024.  It was revealed that a small changed was rushed through and skipped critical rollout paths since it seemed like a small change.  Crowdstrike also runs at a super low kernel level of access and a small memory bug can kill the system.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"hbEWfC4k-Gw\" title=\"🚨🚨 THE STANDUP - Coding DIRTY Episode 7 🚨🚨\" playlabel=\"Play: 🚨🚨 THE STANDUP - Coding DIRTY Episode 7 🚨🚨\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n\u003e \"Gradually roll out your releases to a small group of people\"\n\n\n~ roughly what prime said (I'm listening live)\n\nThis really hit home with me, tests can be so good at making sure that we dont repeat bugs and that laser focused things work, tests are generally small and focused, but this does not replace some sort of integration testing.  These days very few things are written as a monolith, and hence there are a lot of interactions that really need to play well together accross various systems.\n\nThey call out Crowdstrike here, which took down the world blue screening critical windows systems everywhere in 2024.  It was revealed that a small changed was rushed through and skipped critical rollout paths since it seemed like a small change.  Crowdstrike also runs at a super low kernel level of access and a small memory bug can kill the system.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=hbEWfC4k-Gw",
      "date_published": "2025-05-07T18:00:09Z",
      "date_modified": "2025-05-07T18:00:09Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "testing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-623/",
      "url": "https://waylonwalker.com/thought-623/",
      "title": "💭 Learning monitoring",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://waylonwalker.com/thoughts/thought-623/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ewaylonwalker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m trying to level up my sre game.  I’m trying to set up grafana dashboards for everything and it is such a wide surface area.  It’s never just one thing you have to have 3 or more things hooked together in order for the data to flow.\u003c/p\u003e\n\u003cp\u003eI’m really getting not invented here vibes, and thoughts that I can just build this myself.  Not grafana and it’s scalability necessarily, but small components of observability.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://waylonwalker.com/thoughts/thought-623/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ewaylonwalker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm trying to level up my sre game.  I'm trying to set up grafana dashboards for everything and it is such a wide surface area.  It's never just one thing you have to have 3 or more things hooked together in order for the data to flow.\n\nI'm really getting not invented here vibes, and thoughts that I can just build this myself.  Not grafana and it's scalability necessarily, but small components of observability.  \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://waylonwalker.com/thoughts/thought-623/",
      "date_published": "2025-05-07T15:05:45Z",
      "date_modified": "2025-05-07T15:05:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "fleeting",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-622/",
      "url": "https://waylonwalker.com/thought-622/",
      "title": "💭 Kubernetes Monitoring Helm tutorial | Grafana Loki documentation",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://grafana.com/docs/loki/latest/send-data/k8s-monitoring-helm/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://grafana.com/meta-generator/Kubernetes+Monitoring+Helm+tutorial@@@loki@@@9.png\" alt=\"Kubernetes Monitoring Helm tutorial | Grafana Loki documentation\" loading=\"lazy\"/ data-glightbox=\"description: Kubernetes Monitoring Helm tutorial | Grafana Loki documentation\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e\n  Kubernetes Monitoring Helm tutorial | Grafana Loki documentation\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGrafana Labs · grafana.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a really  great guide to setting up kubernetes monitoring with helm, it uses loki as a log datasource and alloy as a collector of kubernetes logs, events, and nodes.  The charts are setup really well to start collecting logs from all your kubernetes pods.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://grafana.com/docs/loki/latest/send-data/k8s-monitoring-helm/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://grafana.com/meta-generator/Kubernetes+Monitoring+Helm+tutorial@@@loki@@@9.png\" alt=\"Kubernetes Monitoring Helm tutorial | Grafana Loki documentation\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e\n  Kubernetes Monitoring Helm tutorial | Grafana Loki documentation\n\n\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGrafana Labs \u0026middot; grafana.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a really  great guide to setting up kubernetes monitoring with helm, it uses loki as a log datasource and alloy as a collector of kubernetes logs, events, and nodes.  The charts are setup really well to start collecting logs from all your kubernetes pods.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://grafana.com/docs/loki/latest/send-data/k8s-monitoring-helm/",
      "date_published": "2025-05-07T01:42:38Z",
      "date_modified": "2025-05-07T01:42:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "grafana",
        "loki",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-621/",
      "url": "https://waylonwalker.com/thought-621/",
      "title": "💭 Configure the Tempo data source | Grafana documentation",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://grafana.com/docs/grafana/latest/datasources/tempo/configure-tempo-data-source/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://grafana.com/meta-generator/Configure+the+Tempo+data+source@@@grafana@@@8.png\" alt=\"Configure the Tempo data source | Grafana documentation\" loading=\"lazy\"/ data-glightbox=\"description: Configure the Tempo data source | Grafana documentation\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e\n  Configure the Tempo data source | Grafana documentation\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGrafana Labs · grafana.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eReally helpful article to getting tempo datasource setup in grafana, this enables you to see span and trace data within grafana.  This data helps debug and work through issues that you might come into  with performance and need to see the timing of requests along with logs.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://grafana.com/docs/grafana/latest/datasources/tempo/configure-tempo-data-source/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://grafana.com/meta-generator/Configure+the+Tempo+data+source@@@grafana@@@8.png\" alt=\"Configure the Tempo data source | Grafana documentation\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e\n  Configure the Tempo data source | Grafana documentation\n\n\n\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGrafana Labs \u0026middot; grafana.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nReally helpful article to getting tempo datasource setup in grafana, this enables you to see span and trace data within grafana.  This data helps debug and work through issues that you might come into  with performance and need to see the timing of requests along with logs.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://grafana.com/docs/grafana/latest/datasources/tempo/configure-tempo-data-source/",
      "date_published": "2025-05-07T01:38:20Z",
      "date_modified": "2025-05-07T01:38:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "grafana",
        "tempo",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/grafana-dashboards-as-k8s-configmap/",
      "url": "https://waylonwalker.com/grafana-dashboards-as-k8s-configmap/",
      "title": "grafana dashboards as k8s configmap",
      "content_html": "\u003cp\u003eI’m trying to learn proper logs, monitoring, otel, and grafana.  Today I\nimported a bunch of pre-made k8s dashboards and made a few of my own for\nspecific apps, and it made me want to know how I can turn my own custom\ndashboards into infrastructure as code.  Turns out grafana makes it pretty easy\nto do this, if you have the grafana dashboard sidecar running.  It will pick up\nany ConfigMap with the grafana_dashboard label and import it.\u003c/p\u003e\n\u003cp\u003eGo to Dashboards -\u0026gt; Pick a Dashboard -\u0026gt; Export -\u0026gt; JSON.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/530e8515-a72a-4341-82d7-37f6f985e327.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/530e8515-a72a-4341-82d7-37f6f985e327.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d792b2db-2dcf-465f-a400-e84f199ec22d.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d792b2db-2dcf-465f-a400-e84f199ec22d.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/684701cc-efec-4e2b-9630-c8aea7ff5b14.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/684701cc-efec-4e2b-9630-c8aea7ff5b14.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eConfigMap\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emy-dashboard\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enamespace\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003emeta\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003elabels\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003egrafana_dashboard\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;1\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003edata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003emy-dashboard.json\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sd\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e      \u0026#34;annotations\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e        \u0026#34;list\u0026#34;: [\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e      ...\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e      \u0026#34;uid\u0026#34;: \u0026#34;fel2uhjhepg5ce\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e      \u0026#34;version\u0026#34;: 3\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e    }\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm trying to learn proper logs, monitoring, otel, and grafana.  Today I\nimported a bunch of pre-made k8s dashboards and made a few of my own for\nspecific apps, and it made me want to know how I can turn my own custom\ndashboards into infrastructure as code.  Turns out grafana makes it pretty easy\nto do this, if you have the grafana dashboard sidecar running.  It will pick up\nany ConfigMap with the grafana_dashboard label and import it.\n\nGo to Dashboards -\u003e Pick a Dashboard -\u003e Export -\u003e JSON.\n\n![image](https://dropper.waylonwalker.com/api/file/530e8515-a72a-4341-82d7-37f6f985e327.webp)\n\n![image](https://dropper.waylonwalker.com/api/file/d792b2db-2dcf-465f-a400-e84f199ec22d.webp)\n\n![image](https://dropper.waylonwalker.com/api/file/684701cc-efec-4e2b-9630-c8aea7ff5b14.webp)\n\n``` yaml\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: my-dashboard\n  namespace: meta\n  labels:\n    grafana_dashboard: \"1\"\ndata:\n  my-dashboard.json: |\n    {\n      \"annotations\": {\n        \"list\": [\n      ...\n      \"uid\": \"fel2uhjhepg5ce\",\n      \"version\": 3\n    }\n```\n",
      "summary": "I'm trying to learn proper logs, monitoring, otel, and grafana. Today I imported a bunch of pre-made k8s dashboards and made a few of my own for specific...",
      "date_published": "2025-05-06T20:24:35Z",
      "date_modified": "2025-05-06T20:24:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "grafana",
        "kubernetes",
        "otel"
      ]
    },
    {
      "id": "https://waylonwalker.com/gitroomhq-postiz-app/",
      "url": "https://waylonwalker.com/gitroomhq-postiz-app/",
      "title": "⭐ gitroomhq postiz-app",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/gitroomhq/postiz-app\" 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\"\u003epostiz-app\u003c/a\u003e by \u003ca href=\"https://github.com/gitroomhq\" 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\"\u003egitroomhq\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003e📨 The ultimate social media scheduling tool, with a bunch of AI  🤖\u003c/p\u003e\n",
      "content_text": "\nJust starred [postiz-app](https://github.com/gitroomhq/postiz-app) by [gitroomhq](https://github.com/gitroomhq). It's an exciting project with a lot to offer.\n\n📨 The ultimate social media scheduling tool, with a bunch of AI  🤖\n",
      "summary": "Just starred postiz-app by gitroomhq. It's an exciting project with a lot to offer.",
      "date_published": "2025-05-06T18:23:48Z",
      "date_modified": "2025-05-06T18:23:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/hollow-knight-home-row-layout/",
      "url": "https://waylonwalker.com/hollow-knight-home-row-layout/",
      "title": "hollow knight home row layout",
      "content_html": "\u003cp\u003eI just made it past 100% in my main hollow knight run, so now I will allow\nmyself to get silksong when it comes out.  I did this with a little bit of YT\nguidance, but mostly just figuring it out.  I only just discovered the\n\u003ca href=\"/reznormichael-hollow-knight-completion-check/\" class=\"wikilink\" data-title=\"⭐ ReznoRMichael hollow-knight-completion-check\" data-description=\"Check out ReznoRMichael and their project hollow-knight-completion-check.\" data-date=\"2025-04-20\" data-preview=\"Check out ReznoRMichael and their project hollow-knight-completion-check.\"\u003e⭐ ReznoRMichael hollow-knight-completion-check\u003c/a\u003e which got me an extra 2% for\na few items I must have got and not saved on, because I was sure I had them.\u003c/p\u003e\n\u003ch2 id=\"controller\"\u003eController \u003ca href=\"#controller\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHollow Knight is a game that can be played with keyboard or controller, You can\nuse analog stick for movements, but they just translate to dpad, there really\nare no analog moves in the game.  This makes it ripe for playing on pure\nkeyboard.  I really favor controller when there are more than one analog\n(throttle, brake, steering for example).\u003c/p\u003e\n\u003cp\u003eOn controller I’ve switched to only using d-pad as I feel like it gives me the\nmost crisp of controls.  It is really easy to miss a pogo on analog by hitting\nslightly left or right.\u003c/p\u003e\n\u003ch2 id=\"my-keyboard\"\u003eMy Keyboard \u003ca href=\"#my-keyboard\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMy daily driver keyboard is a custom built 40% monoblock keyboard I absolutely\nlove using it, it perfectly plops down on a laptop when I am in laptop mode and\nreally fits me quite well for my wrok as a software/infrastructure engineer.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9fd1dbf7-4c5d-4bb3-adaf-138755f90d54.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-05-06T02-36-55-641Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9fd1dbf7-4c5d-4bb3-adaf-138755f90d54.png\" alt=\"screenshot-2025-05-06T02-36-55-641Z.png\"/ data-glightbox=\"description: screenshot-2025-05-06T02-36-55-641Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"wasd\"\u003eWASD \u003ca href=\"#wasd\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003eWe’ve got to talk about pinky stagger\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eI can use wasd perfectly fine on it, I have a layer that has no holds on any\nkeys so that they are all nice and crisp and tailored to gaming operations that\nwould require a hold.\u003c/p\u003e\n\u003cp\u003eNow what I haven’t ran into before is that trying to game with wasd and use the\nright side is very uncomfortable with this steep of a pinky stagger.  Generally\nwith keyboard an mouse games I have the keyboard a little slanted and move my\nfingers to wasd just fine, but it just does not work well with both hands on\nthe keyboard.\u003c/p\u003e\n\u003ch2 id=\"enter-asdf\"\u003eEnter asdf \u003ca href=\"#enter-asdf\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eToday is day one, I’m not quite sure how long it will last, but I am giving\nasdf a try for arrow keys.  This will work much more akin to a fight stick\nwhere each finger has a primary direction instead of using one finger for both\nup and down.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003evim keys, but mirrored\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eI chose to mirror vim keys with down towards the middle.  I had it the other\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eway, but when I played, I kept pressing it the other way.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ea - left\u003c/li\u003e\n\u003cli\u003es - up\u003c/li\u003e\n\u003cli\u003ed - down\u003c/li\u003e\n\u003cli\u003ef - right\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003epower keys\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eI wanted to put the most common keys on the strongest finger (feels like\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eleft pinky breaks this mantra, but whatever).\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ej - attack\u003c/li\u003e\n\u003cli\u003ek - dash\u003c/li\u003e\n\u003cli\u003el - focus/cast\u003c/li\u003e\n\u003cli\u003eh - quick cast\u003c/li\u003e\n\u003cli\u003ee - inventory\u003c/li\u003e\n\u003cli\u003eu - super dash\u003c/li\u003e\n\u003cli\u003em - map\u003c/li\u003e\n\u003cli\u003eg - dream nail\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ch2 id=\"this-seems-weird\"\u003eThis seems weird \u003ca href=\"#this-seems-weird\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo Ya, I know it’s weird. I did some searching wasn’t able to find much other\nthan this one \u003ca href=\"https://www.reddit.com/r/KeyboardLayouts/comments/18kdnl0/using_asdf_instead_of_wasd_for_gaming/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.reddit.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.reddit.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ereddit post\u003c/a\u003e\ntalking about using asdf.  oddly one person reccommended sdfg, this souds so\nmuch like vim, which makes a lot of sense, but brings back moving fingers off\nof home row position or using one finger for down and right, which aint gonna\nwork.\u003c/p\u003e\n\u003ch2 id=\"first-thoughts\"\u003eFirst thoughts \u003ca href=\"#first-thoughts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m about 20 minutes in and struggling on False Knight, I could be a bit more\npatient, but I’m trying to work on pogos on all the mobs on the way in.\u003c/p\u003e\n\u003ch3 id=\"holding-up-or-down\"\u003eHolding up or down \u003ca href=\"#holding-up-or-down\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe ability to just hold up or down as you run through the map with enemies\ncoming from above or below feels superior, and its going to be nice, I really\njust got to put some time in to get use to the layout, maybe even make some\nchanges.\u003c/p\u003e\n\u003cp\u003eI realize now that Hollow Knight rarely needs quick swiching between up and\ndown and would probably be fine on a wasd layout if i were to be using a split\nkeyboard or a bit less pinky stagger that would work out, but for now I am\ngiving this a shot.\u003c/p\u003e\n\u003ch2 id=\"my-sons-experience\"\u003eMy Son’s experience \u003ca href=\"#my-sons-experience\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo my son is playing along with me, new save as well. He went with wasd and\nmouse, while this sounds insane to me to use mouse for clicking and no movement\nthe natural feel that it has, has him blazing through faster than he does on\ncontroller, doing pogos he’s never done before.\u003c/p\u003e\n\u003ch2 id=\"false-knight-down\"\u003eFalse Knight down \u003ca href=\"#false-knight-down\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe recording somehow stuck on the menu screen and did not record video, but I\ngot this screenshot of the victory.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/be00de02-1cac-4dc2-8c05-9c52c9f1f124.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/be00de02-1cac-4dc2-8c05-9c52c9f1f124.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"vengeful-spirit\"\u003eVengeful Spirit \u003ca href=\"#vengeful-spirit\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eDay 2 I managed to make it to the Ancestral Mound and get the Vengeful Spirit\ncast.  Everything is starting to feel much better and more natural.\nSurprisingly my main issue is with up and down since they are used a bit less,\nleft with my pinky has not been any issue.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3c461bd2-3276-45da-8411-c85073f66497.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-run-vengeful-spirit.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3c461bd2-3276-45da-8411-c85073f66497.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3c461bd2-3276-45da-8411-c85073f66497.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-run-vengeful-spirit.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"hornet-battle-1\"\u003eHornet Battle 1 \u003ca href=\"#hornet-battle-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI made it successfully through the first hornet battle I was able to snag this\nclip of a few nicely timed pogos.  Its getting better, I am still really\nstruggling between down srike and up strike.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f627cb2c-8da5-4508-9d05-c3a12ed4c2b9.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-run-hornet-pogos.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/f627cb2c-8da5-4508-9d05-c3a12ed4c2b9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/f627cb2c-8da5-4508-9d05-c3a12ed4c2b9.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-run-hornet-pogos.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"mothwing-cloak\"\u003eMothwing Cloak \u003ca href=\"#mothwing-cloak\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI got so lucky  with the finish of hornet, I thought she hit me while healing,\nkinda lost where we were tanked a hit and almost took one last hit again and\nbeat her to the final punch.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8784c22-2baa-410a-af23-d7ebebaa6608.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-run-hornet-finish.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8784c22-2baa-410a-af23-d7ebebaa6608.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8784c22-2baa-410a-af23-d7ebebaa6608.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-run-hornet-finish.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d82dd000-a7b1-401e-8f78-72939a296328.jpg\" class=\"glightbox-link\" aria-label=\"20250507172106_1.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d82dd000-a7b1-401e-8f78-72939a296328.jpg\" alt=\"20250507172106_1.jpg\"/ data-glightbox=\"description: 20250507172106_1.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"gruz-mother\"\u003eGruz Mother \u003ca href=\"#gruz-mother\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter completing gruz mother I went to grab my macropad to click the clip\nbutton when her babies came out, and it was at this moment my son told me I was\ndone for, there was no recovering from this.  I was already at 2 hearts, and a\nmistake left me with one.  You can see me fumble for the up key in the clip as\nI get repositioned fully on back on the board.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0a6ffb43-f416-46e4-9e17-05c3ac9c3429.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-run-gruz-mother.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/0a6ffb43-f416-46e4-9e17-05c3ac9c3429.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/0a6ffb43-f416-46e4-9e17-05c3ac9c3429.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-run-gruz-mother.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eNow we have Sly the merchant unlocked and can buy items from him.\u003c/p\u003e\n\u003ch2 id=\"city\"\u003eCity \u003ca href=\"#city\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI made it to the city, but on my way, it looks like one of the smokey layers\nwere getting put on top of the game instead of layer in behind. I’ve never seen\nthis, so I really have no idea what it is.  During the thorny area it was in\nand out and right as I entered the city it locked on top and did not leave.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f2fe3da0-9078-4292-9fef-9f4efd306d63.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f2fe3da0-9078-4292-9fef-9f4efd306d63.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"soul-master\"\u003eSoul Master \u003ca href=\"#soul-master\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI made my way over to the soul master, dying several times along the way to a\nfew \u003ca href=\"https://hollowknight.fandom.com/wiki/Soul_Twister\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hollowknight.fandom.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hollowknight.fandom.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eSoul Twisters\u003c/a\u003e, its\ntime to battle.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2d664476-ac45-4461-8e33-43211d493e9e.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-run-soul-meeting-master.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2d664476-ac45-4461-8e33-43211d493e9e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2d664476-ac45-4461-8e33-43211d493e9e.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-run-soul-meeting-master.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAfter beating his second room, (this clip makes him look way too easy as he\nwasn’t targeting me fore some reason at the end), I picked up desolate dive,\nwhich brings a new key combo to get familiar with down+cast.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/af9df166-33cd-4260-85df-910e8a18116c.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-run-soul-master-finish.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/af9df166-33cd-4260-85df-910e8a18116c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/af9df166-33cd-4260-85df-910e8a18116c.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-run-soul-master-finish.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"moss-knight\"\u003eMoss Knight \u003ca href=\"#moss-knight\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI took a break for awhile on the game, my son got bored and moved on.  He tends\nto switch out games a lot faster than me.  I came back to it tonight after a\nfew months off and just got some geo from the moss knights for awhile.  I got\nthis decent clip of clearing them, I’m no pro, but getting better at timing on\nthe keeb layout.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-moss-knight.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-moss-knight.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"lumafly-lantern\"\u003eLumafly Lantern \u003ca href=\"#lumafly-lantern\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhile I had a lot of geo from the Moss Knights I finished out getting 1800 geo\nto get the lumafly lantern from sly’s shop at dirtmouth.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-lumafly-lantern.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-lumafly-lantern.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"royal-waterway\"\u003eRoyal Waterway \u003ca href=\"#royal-waterway\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI decided to head back to the city of tears and into the royal waterway to\nfight the dung defender and collect Isma’s tear.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-royal-waterway-unlock.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-royal-waterway-unlock.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-royal-waterway-entering.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-royal-waterway-entering.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-royal-waterway-bench.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-royal-waterway-bench.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe Dung Defender battle, great lore with this guy, lots of bouncy movement,\nbut overall not too hard of a boss.  He is not very accurate with attacks, so\nyou have time to just sit in the corners and heal.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-dung-defender.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-dung-defender.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eOnce the Dung Defender was defeated, I continued on up to the Kings Station and unlocked it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-kings-station.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-kings-station.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI could not remember where ismas tear was and I ended up all the way down in\ndeep nest, the climb out is a bit of a challenge, here I am going right by the\nroute you take with crystal dash to get isma’s tear.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4\" class=\"glightbox-link\" aria-label=\"climbing-out-of-deep-nest.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4\" type=\"video/mp4\"\u003eclimbing-out-of-deep-nest.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"ismas-tear\"\u003eIsma’s Tear \u003ca href=\"#ismas-tear\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI managed to find my way through the royal waterway and where you crystal dash\nover to isma’s tear.  This battle took two attempts, because the first I had no\nhealth left and walked in with two masks.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-ismas-tear-battle.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-ismas-tear-battle.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eNow the tear coats our shell and allows us to swim through the acid, and we can\nget a lot more places, and some places are just easier to get without precision\nparkour over the acid.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-ismas-tear.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-ismas-tear.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"thorny-mask\"\u003eThorny Mask \u003ca href=\"#thorny-mask\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI wandered around the world a bit today and found a few small items, nothing of major concequence.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-thorny-mask-shard.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-thorny-mask-shard.mp4\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-spore-shroom.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-spore-shroom.mp4\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-thorny-wanderers-journal.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-thorny-wanderers-journal.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"challenging-mantis-lords\"\u003eChallenging Mantis Lords \u003ca href=\"#challenging-mantis-lords\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt felt like time to challenge the Mantis Lords.  For the reason to prove to\nmyself that I am getting better at this layout.\u003c/p\u003e\n\u003cp\u003eI drew my nail and ready for the challenge.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-challenging-mantis-lords.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-challenging-mantis-lords.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eFirst try I made it past the first one, and deep into the second one, I think\nIf I would have remembered the healing window for them I would have had a shot\nat a first try on them.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-mantis-lords-1.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-mantis-lords-1.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAfter three tries I had it.  Maybe its not apples to apples with my first ever\nrun years ago on steam deck, but it took months.  I would have about 20 minutes\na day waiting for kids pickup at school and I would just keep grinding at them\nfor what added up to be likely several hours.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-defeating-mantis-lords.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-defeating-mantis-lords.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAfter defeating them I’m let into the treasure room where I get a bench,\nHallownest seal, a big loot box, and the \u003ca href=\"https://hollowknight.fandom.com/wiki/Mark_of_Pride\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hollowknight.fandom.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hollowknight.fandom.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emark of\npride\u003c/a\u003e.  This is actually\none of my favorite charms as it gives you an extra 25% range to your nail\nattacks.  This opens up the window for pogos and reach attacks without taking\ndamage.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4\" class=\"glightbox-link\" aria-label=\"hollow-knight-keeb-mark-of-pride.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-mark-of-pride.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI just made it past 100% in my main hollow knight run, so now I will allow\nmyself to get silksong when it comes out.  I did this with a little bit of YT\nguidance, but mostly just figuring it out.  I only just discovered the\n\u003ca href=\"/reznormichael-hollow-knight-completion-check/\" class=\"wikilink\" data-title=\"⭐ ReznoRMichael hollow-knight-completion-check\" data-description=\"Check out ReznoRMichael and their project hollow-knight-completion-check.\" data-date=\"2025-04-20\"\u003e⭐ ReznoRMichael hollow-knight-completion-check\u003c/a\u003e which got me an extra 2% for\na few items I must have got and not saved on, because I was sure I had them.\n\n## Controller\n\nHollow Knight is a game that can be played with keyboard or controller, You can\nuse analog stick for movements, but they just translate to dpad, there really\nare no analog moves in the game.  This makes it ripe for playing on pure\nkeyboard.  I really favor controller when there are more than one analog\n(throttle, brake, steering for example).\n\nOn controller I've switched to only using d-pad as I feel like it gives me the\nmost crisp of controls.  It is really easy to miss a pogo on analog by hitting\nslightly left or right.\n\n## My Keyboard\n\nMy daily driver keyboard is a custom built 40% monoblock keyboard I absolutely\nlove using it, it perfectly plops down on a laptop when I am in laptop mode and\nreally fits me quite well for my wrok as a software/infrastructure engineer.\n\n![screenshot-2025-05-06T02-36-55-641Z.png](https://dropper.waylonwalker.com/api/file/9fd1dbf7-4c5d-4bb3-adaf-138755f90d54.png)\n\n## WASD\n\n_We've got to talk about pinky stagger_\n\nI can use wasd perfectly fine on it, I have a layer that has no holds on any\nkeys so that they are all nice and crisp and tailored to gaming operations that\nwould require a hold.\n\nNow what I haven't ran into before is that trying to game with wasd and use the\nright side is very uncomfortable with this steep of a pinky stagger.  Generally\nwith keyboard an mouse games I have the keyboard a little slanted and move my\nfingers to wasd just fine, but it just does not work well with both hands on\nthe keyboard.\n\n## Enter asdf\n\nToday is day one, I'm not quite sure how long it will last, but I am giving\nasdf a try for arrow keys.  This will work much more akin to a fight stick\nwhere each finger has a primary direction instead of using one finger for both\nup and down.\n\n!!! Note vim keys, but mirrored\n    I chose to mirror vim keys with down towards the middle.  I had it the other\n    way, but when I played, I kept pressing it the other way.\n\n    * a - left\n    * s - up\n    * d - down\n    * f - right\n\n!!! Note power keys\n    I wanted to put the most common keys on the strongest finger (feels like\n    left pinky breaks this mantra, but whatever).\n\n    * j - attack\n    * k - dash\n    * l - focus/cast\n    * h - quick cast\n    * e - inventory\n    * u - super dash\n    * m - map\n    * g - dream nail\n\n## This seems weird\n\nSo Ya, I know it's weird. I did some searching wasn't able to find much other\nthan this one [reddit post](https://www.reddit.com/r/KeyboardLayouts/comments/18kdnl0/using_asdf_instead_of_wasd_for_gaming/)\ntalking about using asdf.  oddly one person reccommended sdfg, this souds so\nmuch like vim, which makes a lot of sense, but brings back moving fingers off\nof home row position or using one finger for down and right, which aint gonna\nwork.\n\n## First thoughts\n\nI'm about 20 minutes in and struggling on False Knight, I could be a bit more\npatient, but I'm trying to work on pogos on all the mobs on the way in.\n\n### Holding up or down\n\nThe ability to just hold up or down as you run through the map with enemies\ncoming from above or below feels superior, and its going to be nice, I really\njust got to put some time in to get use to the layout, maybe even make some\nchanges.\n\nI realize now that Hollow Knight rarely needs quick swiching between up and\ndown and would probably be fine on a wasd layout if i were to be using a split\nkeyboard or a bit less pinky stagger that would work out, but for now I am\ngiving this a shot.\n\n## My Son's experience\n\nSo my son is playing along with me, new save as well. He went with wasd and\nmouse, while this sounds insane to me to use mouse for clicking and no movement\nthe natural feel that it has, has him blazing through faster than he does on\ncontroller, doing pogos he's never done before.\n\n## False Knight down\n\nThe recording somehow stuck on the menu screen and did not record video, but I\ngot this screenshot of the victory.\n\n![image](https://dropper.waylonwalker.com/api/file/be00de02-1cac-4dc2-8c05-9c52c9f1f124.webp)\n\n## Vengeful Spirit\n\nDay 2 I managed to make it to the Ancestral Mound and get the Vengeful Spirit\ncast.  Everything is starting to feel much better and more natural.\nSurprisingly my main issue is with up and down since they are used a bit less,\nleft with my pinky has not been any issue.\n\n![hollow-knight-keeb-run-vengeful-spirit.mp4](https://dropper.waylonwalker.com/api/file/3c461bd2-3276-45da-8411-c85073f66497.mp4)\n\n## Hornet Battle 1\n\nI made it successfully through the first hornet battle I was able to snag this\nclip of a few nicely timed pogos.  Its getting better, I am still really\nstruggling between down srike and up strike.\n\n![hollow-knight-keeb-run-hornet-pogos.mp4](https://dropper.waylonwalker.com/api/file/f627cb2c-8da5-4508-9d05-c3a12ed4c2b9.mp4)\n\n## Mothwing Cloak\n\nI got so lucky  with the finish of hornet, I thought she hit me while healing,\nkinda lost where we were tanked a hit and almost took one last hit again and\nbeat her to the final punch.\n\n![hollow-knight-keeb-run-hornet-finish.mp4](https://dropper.waylonwalker.com/api/file/d8784c22-2baa-410a-af23-d7ebebaa6608.mp4)\n\n![20250507172106_1.jpg](https://dropper.waylonwalker.com/api/file/d82dd000-a7b1-401e-8f78-72939a296328.jpg)\n\n## Gruz Mother\n\nAfter completing gruz mother I went to grab my macropad to click the clip\nbutton when her babies came out, and it was at this moment my son told me I was\ndone for, there was no recovering from this.  I was already at 2 hearts, and a\nmistake left me with one.  You can see me fumble for the up key in the clip as\nI get repositioned fully on back on the board.\n\n![hollow-knight-keeb-run-gruz-mother.mp4](https://dropper.waylonwalker.com/api/file/0a6ffb43-f416-46e4-9e17-05c3ac9c3429.mp4)\n\nNow we have Sly the merchant unlocked and can buy items from him.\n\n## City\n\nI made it to the city, but on my way, it looks like one of the smokey layers\nwere getting put on top of the game instead of layer in behind. I've never seen\nthis, so I really have no idea what it is.  During the thorny area it was in\nand out and right as I entered the city it locked on top and did not leave.\n\n![image](https://dropper.waylonwalker.com/api/file/f2fe3da0-9078-4292-9fef-9f4efd306d63.webp)\n\n## Soul Master\n\nI made my way over to the soul master, dying several times along the way to a\nfew [Soul Twisters](https://hollowknight.fandom.com/wiki/Soul_Twister), its\ntime to battle.\n\n![hollow-knight-keeb-run-soul-meeting-master.mp4](https://dropper.waylonwalker.com/api/file/2d664476-ac45-4461-8e33-43211d493e9e.mp4)\n\nAfter beating his second room, (this clip makes him look way too easy as he\nwasn't targeting me fore some reason at the end), I picked up desolate dive,\nwhich brings a new key combo to get familiar with down+cast.\n\n![hollow-knight-keeb-run-soul-master-finish.mp4](https://dropper.waylonwalker.com/api/file/af9df166-33cd-4260-85df-910e8a18116c.mp4)\n\n## Moss Knight\n\nI took a break for awhile on the game, my son got bored and moved on.  He tends\nto switch out games a lot faster than me.  I came back to it tonight after a\nfew months off and just got some geo from the moss knights for awhile.  I got\nthis decent clip of clearing them, I'm no pro, but getting better at timing on\nthe keeb layout.\n\n![hollow-knight-keeb-moss-knight.mp4](https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4)\n\n## Lumafly Lantern\n\nWhile I had a lot of geo from the Moss Knights I finished out getting 1800 geo\nto get the lumafly lantern from sly's shop at dirtmouth.\n\n![hollow-knight-keeb-lumafly-lantern.mp4](https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4)\n\n## Royal Waterway\n\nI decided to head back to the city of tears and into the royal waterway to\nfight the dung defender and collect Isma's tear.\n\n![hollow-knight-keeb-royal-waterway-unlock.mp4](https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4)\n\n![hollow-knight-keeb-royal-waterway-entering.mp4](https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4)\n\n![hollow-knight-keeb-royal-waterway-bench.mp4](https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4)\n\nThe Dung Defender battle, great lore with this guy, lots of bouncy movement,\nbut overall not too hard of a boss.  He is not very accurate with attacks, so\nyou have time to just sit in the corners and heal.\n\n![hollow-knight-keeb-dung-defender.mp4](https://dropper.waylonwalker.com/api/file/982091a0-a65a-44a4-aca6-fbffcff9ed90.mp4)\n\nOnce the Dung Defender was defeated, I continued on up to the Kings Station and unlocked it.\n\n![hollow-knight-keeb-kings-station.mp4](https://dropper.waylonwalker.com/api/file/3651c0e1-6d99-4b54-95eb-5b955323a2e9.mp4)\n\nI could not remember where ismas tear was and I ended up all the way down in\ndeep nest, the climb out is a bit of a challenge, here I am going right by the\nroute you take with crystal dash to get isma's tear.\n\n![climbing-out-of-deep-nest.mp4](https://dropper.waylonwalker.com/api/file/9a4befef-e694-4a3c-8b0e-edd06a3f741c.mp4)\n\n## Isma's Tear\n\nI managed to find my way through the royal waterway and where you crystal dash\nover to isma's tear.  This battle took two attempts, because the first I had no\nhealth left and walked in with two masks.\n\n![hollow-knight-keeb-ismas-tear-battle.mp4](https://dropper.waylonwalker.com/api/file/4dd7d2cd-7d4a-473e-a483-f8f8512c6442.mp4)\n\nNow the tear coats our shell and allows us to swim through the acid, and we can\nget a lot more places, and some places are just easier to get without precision\nparkour over the acid.\n\n![hollow-knight-keeb-ismas-tear.mp4](https://dropper.waylonwalker.com/api/file/c6a334a4-d8d3-4742-82ea-3b6e9eaa9923.mp4)\n\n## Thorny Mask\n\nI wandered around the world a bit today and found a few small items, nothing of major concequence.\n\n![hollow-knight-keeb-thorny-mask-shard.mp4](https://dropper.waylonwalker.com/api/file/2b9b5302-7437-4910-a98c-bc96650e353c.mp4)\n![hollow-knight-keeb-spore-shroom.mp4](https://dropper.waylonwalker.com/api/file/a15c7895-bd25-4238-9634-f58c2590730a.mp4)\n![hollow-knight-keeb-thorny-wanderers-journal.mp4](https://dropper.waylonwalker.com/api/file/d8cdee6e-4627-444a-99a0-b5b35e960dd8.mp4)\n\n## Challenging Mantis Lords\n\nIt felt like time to challenge the Mantis Lords.  For the reason to prove to\nmyself that I am getting better at this layout.\n\nI drew my nail and ready for the challenge.\n\n![hollow-knight-keeb-challenging-mantis-lords.mp4](https://dropper.waylonwalker.com/api/file/dfe1c93b-3dd8-4941-8991-7ec8d4b49beb.mp4)\n\nFirst try I made it past the first one, and deep into the second one, I think\nIf I would have remembered the healing window for them I would have had a shot\nat a first try on them.\n\n![hollow-knight-keeb-mantis-lords-1.mp4](https://dropper.waylonwalker.com/api/file/98e34601-2cdd-4a38-98a1-97719b38c843.mp4)\n\nAfter three tries I had it.  Maybe its not apples to apples with my first ever\nrun years ago on steam deck, but it took months.  I would have about 20 minutes\na day waiting for kids pickup at school and I would just keep grinding at them\nfor what added up to be likely several hours.\n\n![hollow-knight-keeb-defeating-mantis-lords.mp4](https://dropper.waylonwalker.com/api/file/90bb2a30-c781-4dfd-98aa-ed933b24f1e3.mp4)\n\nAfter defeating them I'm let into the treasure room where I get a bench,\nHallownest seal, a big loot box, and the [mark of\npride](https://hollowknight.fandom.com/wiki/Mark_of_Pride).  This is actually\none of my favorite charms as it gives you an extra 25% range to your nail\nattacks.  This opens up the window for pogos and reach attacks without taking\ndamage.\n\n![hollow-knight-keeb-mark-of-pride.mp4](https://dropper.waylonwalker.com/api/file/b9af2296-60e9-4d92-989f-1529a59c75a1.mp4)\n",
      "summary": "I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...",
      "date_published": "2025-05-05T20:44:36Z",
      "date_modified": "2025-05-05T20:44:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "hollow-knight",
        "keeb",
        "keyboard"
      ]
    },
    {
      "id": "https://waylonwalker.com/wezterm-wezterm/",
      "url": "https://waylonwalker.com/wezterm-wezterm/",
      "title": "⭐ wezterm wezterm",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/wezterm/wezterm\" 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\"\u003ewezterm\u003c/a\u003e by \u003ca href=\"https://github.com/wezterm\" 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\"\u003ewezterm\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eA GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [wezterm](https://github.com/wezterm/wezterm) by [wezterm](https://github.com/wezterm), and it's truly impressive.\n\nA GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust\n",
      "summary": "I recently discovered wezterm by wezterm, and it's truly impressive.",
      "date_published": "2025-05-05T15:23:46Z",
      "date_modified": "2025-05-05T15:23:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/fix-feed-descriptions/",
      "url": "https://waylonwalker.com/fix-feed-descriptions/",
      "title": "fix feed descriptions",
      "content_html": "\u003cp\u003eToday I fixed a bug in markata that has been occurring for a few months where\nthe description for posts come out as None if coming from cache, the issue was\na pretty simple check and pull properly from cache.  This fixes all the\ndescriptions in feeds and metadata on the post.\u003c/p\u003e\n\u003ch2 id=\"better-description\"\u003eBetter description \u003ca href=\"#better-description\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhile in there we went ahead and improved our get_description to more\naccurately return plain text without escaped characters, remove cutoff words,\nand add an elipsis if the description cuts off the text.\u003c/p\u003e\n\u003ch2 id=\"more-description\"\u003eMore description \u003ca href=\"#more-description\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhile I was there I made longer form posts, \u003ccode\u003etil, blog-post\u003c/code\u003e use the super\ndescription of 500 characters instead of the regular 120 character description.\u003c/p\u003e\n\u003ch2 id=\"before\"\u003eBefore \u003ca href=\"#before\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8e9cf8e3-50ab-4e0a-be76-7241fbfe44c5.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/8e9cf8e3-50ab-4e0a-be76-7241fbfe44c5.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"after\"\u003eAfter \u003ca href=\"#after\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/29f96255-a89f-4ec6-b9e7-f61551366264.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/29f96255-a89f-4ec6-b9e7-f61551366264.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nToday I fixed a bug in markata that has been occurring for a few months where\nthe description for posts come out as None if coming from cache, the issue was\na pretty simple check and pull properly from cache.  This fixes all the\ndescriptions in feeds and metadata on the post.\n\n## Better description\n\nWhile in there we went ahead and improved our get_description to more\naccurately return plain text without escaped characters, remove cutoff words,\nand add an elipsis if the description cuts off the text.\n\n\n## More description\n\nWhile I was there I made longer form posts, `til, blog-post` use the super\ndescription of 500 characters instead of the regular 120 character description.\n\n\n## Before\n\n![image](https://dropper.waylonwalker.com/api/file/8e9cf8e3-50ab-4e0a-be76-7241fbfe44c5.webp)\n\n## After\n![image](https://dropper.waylonwalker.com/api/file/29f96255-a89f-4ec6-b9e7-f61551366264.webp)\n",
      "summary": "Today I fixed a bug in markata that has been occurring for a few months where the description for posts come out as None if coming from cache, the issue was...",
      "date_published": "2025-05-05T10:32:04Z",
      "date_modified": "2025-05-05T10:32:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markata",
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-620/",
      "url": "https://waylonwalker.com/thought-620/",
      "title": "💭 Vectorizing Your Databases with Steve Pousty",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.fafo.fm/vectorizing-your-databases-with-steve-pousty/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.fafo.fm.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.fafo.fm.jpg\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003efafo.fm\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSteve is such a great listen, the neurospicy 🌶️ rambles this episode goes on is so relatable.  I feel like I really missed out on some great takes on intellij vs neovim, but got some really great knowledge about vector db’s, embedding, text compression, similarities to vector algegra like infinite craft.\u003c/p\u003e\n\u003cp\u003eJust popped open infinitecraft and I’ve definitely played this with my kids before, super fun, just could not remember the name of this one.  I do remember an android one as well that is alchemist or something like that, which we have also played a lot.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.fafo.fm/vectorizing-your-databases-with-steve-pousty/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003efafo.fm\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSteve is such a great listen, the neurospicy 🌶️ rambles this episode goes on is so relatable.  I feel like I really missed out on some great takes on intellij vs neovim, but got some really great knowledge about vector db's, embedding, text compression, similarities to vector algegra like infinite craft. \n\n\nJust popped open infinitecraft and I've definitely played this with my kids before, super fun, just could not remember the name of this one.  I do remember an android one as well that is alchemist or something like that, which we have also played a lot.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.fafo.fm/vectorizing-your-databases-with-steve-pousty/",
      "date_published": "2025-05-04T17:54:39Z",
      "date_modified": "2025-05-04T17:54:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "rag",
        "thought",
        "vector"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-618/",
      "url": "https://waylonwalker.com/thought-618/",
      "title": "💭 Recovering from Disaster with Seth Eliot",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.fafo.fm/recovering-from-disaster-with-seth-eliot/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://images.podpage.com/tr:w-1200,h-630,c-force,bl-50:l-image,i-ik_canvas,bg-E8AA3A33,w-1200,h-630,l-end:l-image,ie-aHR0cHM6Ly9pbWcudHJhbnNpc3Rvci5mbS9NbldmdHVqTURFeHJ4STlDdUFkUnNfUkYwOWZMdDNkNjBLNk9PR3gyMzZFL3JzOmZpbGw6MDowOjEvdzoxNDAwL2g6MTQwMC9xOjYwL21iOjUwMDAwMC9hSFIwY0hNNkx5OXBiV2N0L2RYQnNiMkZrTFhCeWIyUjEvWTNScGIyNHVkSEpoYm5OcC9jM1J2Y2k1bWJTOHhZamt4L1pXVTFPVE00TURZeE1XRXovWm1FMFlqUTROMlprTlRKbS9aRFZsTmk1d2JtYy5qcGc,w-550,h-550,c-at_max,lx-40,ly-40,lfo-top_left,l-end:l-text,ie-UmVjb3ZlcmluZyBmcm9tIERpc2FzdGVyIHdpdGggU2V0aCBFbGlvdA,w-550,fs-64,ff-Poppins,co-ffffff,ia-left,lx-630,ly-40,lfo-top_left,l-end/https://img.transistor.fm/MnWftujMDExrxI9CuAdRs_RF09fLt3d60K6OOGx236E/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS8xYjkx/ZWU1OTM4MDYxMWEz/ZmE0YjQ4N2ZkNTJm/ZDVlNi5wbmc.jpg\" alt=\"Recovering from Disaster with Seth Eliot — Disaster recovery is more than automation and infrastructure. There\u0026#39;s a lot that goes into your services and some of those things can\u0026#39;t be defined as code or automa…\" loading=\"lazy\"/ data-glightbox=\"description: Recovering from Disaster with Seth Eliot — Disaster recovery is more than automation and infrastructure. There\u0026#39;s a lot that goes into your services and some of those things can\u0026#39;t be defined as code or automa…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRecovering from Disaster with Seth Eliot\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDisaster recovery is more than automation and infrastructure. There\u0026#39;s a lot that goes into your services and some of those things can\u0026#39;t be defined as code or automa…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eFork Around And Find Out · fafo.fm\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis episode really got me thinking about the difference between HA and DR and my approach to each one.  They talk about it from the perspective of a cach cow kind of app rather than a \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e or internal tooling, but think of HA as 9’s how many 9s are we willing to pay for, tink of DR as dollars how many dollars will we loose during the period of recovery.  So much more in the episode, a lot of talk around cloud vendors and what they give you vs a purpose build platform with HA and DR in mind.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.fafo.fm/recovering-from-disaster-with-seth-eliot/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://images.podpage.com/tr:w-1200,h-630,c-force,bl-50:l-image,i-ik_canvas,bg-E8AA3A33,w-1200,h-630,l-end:l-image,ie-aHR0cHM6Ly9pbWcudHJhbnNpc3Rvci5mbS9NbldmdHVqTURFeHJ4STlDdUFkUnNfUkYwOWZMdDNkNjBLNk9PR3gyMzZFL3JzOmZpbGw6MDowOjEvdzoxNDAwL2g6MTQwMC9xOjYwL21iOjUwMDAwMC9hSFIwY0hNNkx5OXBiV2N0L2RYQnNiMkZrTFhCeWIyUjEvWTNScGIyNHVkSEpoYm5OcC9jM1J2Y2k1bWJTOHhZamt4L1pXVTFPVE00TURZeE1XRXovWm1FMFlqUTROMlprTlRKbS9aRFZsTmk1d2JtYy5qcGc,w-550,h-550,c-at_max,lx-40,ly-40,lfo-top_left,l-end:l-text,ie-UmVjb3ZlcmluZyBmcm9tIERpc2FzdGVyIHdpdGggU2V0aCBFbGlvdA,w-550,fs-64,ff-Poppins,co-ffffff,ia-left,lx-630,ly-40,lfo-top_left,l-end/https://img.transistor.fm/MnWftujMDExrxI9CuAdRs_RF09fLt3d60K6OOGx236E/rs:fill:0:0:1/w:1400/h:1400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS8xYjkx/ZWU1OTM4MDYxMWEz/ZmE0YjQ4N2ZkNTJm/ZDVlNi5wbmc.jpg\" alt=\"Recovering from Disaster with Seth Eliot — Disaster recovery is more than automation and infrastructure. There\u0026#39;s a lot that goes into your services and some of those things can\u0026#39;t be defined as code or automa…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRecovering from Disaster with Seth Eliot\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDisaster recovery is more than automation and infrastructure. There\u0026#39;s a lot that goes into your services and some of those things can\u0026#39;t be defined as code or automa…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eFork Around And Find Out \u0026middot; fafo.fm\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis episode really got me thinking about the difference between HA and DR and my approach to each one.  They talk about it from the perspective of a cach cow kind of app rather than a homelab or internal tooling, but think of HA as 9's how many 9s are we willing to pay for, tink of DR as dollars how many dollars will we loose during the period of recovery.  So much more in the episode, a lot of talk around cloud vendors and what they give you vs a purpose build platform with HA and DR in mind.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.fafo.fm/recovering-from-disaster-with-seth-eliot/",
      "date_published": "2025-05-04T17:48:54Z",
      "date_modified": "2025-05-04T17:48:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cloud",
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/kubero-dev-kubero/",
      "url": "https://waylonwalker.com/kubero-dev-kubero/",
      "title": "⭐ kubero-dev kubero",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/kubero-dev/kubero\" 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\"\u003ekubero\u003c/a\u003e by \u003ca href=\"https://github.com/kubero-dev\" 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\"\u003ekubero-dev\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eA free and \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself-hosted\u003c/a\u003e PaaS alternative to Heroku / Netlify / Coolify / Vercel / Dokku / Portainer running on Kubernetes\u003c/p\u003e\n",
      "content_text": "\nJust starred [kubero](https://github.com/kubero-dev/kubero) by [kubero-dev](https://github.com/kubero-dev). It's an exciting project with a lot to offer.\n\nA free and self-hosted PaaS alternative to Heroku / Netlify / Coolify / Vercel / Dokku / Portainer running on Kubernetes\n",
      "summary": "Just starred kubero by kubero-dev. It's an exciting project with a lot to offer.",
      "date_published": "2025-05-04T17:39:16Z",
      "date_modified": "2025-05-04T17:39:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ruff-single-line-import/",
      "url": "https://waylonwalker.com/ruff-single-line-import/",
      "title": "ruff single line import",
      "content_html": "\u003cp\u003eI’ve been using ruff to lint my python code for quite awhile now, I was pretty\nearly to jump on it after release.  Some of my projects have had a nice\nforce-single-line setting and some have not.  I dug into the docs and it was\nnot clear what I needed to make it work.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003etool\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eruff\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eselect\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;I\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"c\"\u003e# you probably want others as well\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003etool\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eruff\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eisort\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eforce-single-line\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eTurns out I was missing \u003cstrong\u003eI\u003c/strong\u003esort in the select list.\u003c/p\u003e\n",
      "content_text": "\nI've been using ruff to lint my python code for quite awhile now, I was pretty\nearly to jump on it after release.  Some of my projects have had a nice\nforce-single-line setting and some have not.  I dug into the docs and it was\nnot clear what I needed to make it work.\n\n``` toml\n[tool.ruff]\nselect = ['I'] # you probably want others as well\n\n[tool.ruff.isort]\nforce-single-line = true\n```\n\nTurns out I was missing **I**sort in the select list.\n",
      "summary": "I've been using ruff to lint my python code for quite awhile now, I was pretty early to jump on it after release. Some of my projects have had a nice...",
      "date_published": "2025-05-04T14:23:41Z",
      "date_modified": "2025-05-04T14:23:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linting",
        "python",
        "ruff"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-617/",
      "url": "https://waylonwalker.com/thought-617/",
      "title": "💭 Red-Knot: Ruff's new Type Checker - Talk Python Live Stream - ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"XVwpL_cAvrw\" title=\"ty: Astral\u0026#39;s New Type Checker (Formerly Red-Knot) - Talk Python to Me Ep. 506\" playlabel=\"Play: ty: Astral\u0026#39;s New Type Checker (Formerly Red-Knot) - Talk Python to Me Ep. 506\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eAstral is doing great things in the python industry.  They are disrupting entire categories of tools with extremely fast, easy to use, and feature rich alternatives that make it really hard to keep using the incumbent.   So far I am seeing no signs of evil, sometimes with such a disrupter there is some sort of downside that make it hard to want to do the switch.  In the interview they even mention things like leaning on lsp so that it works across all editors rather than building out vscode integrations that work for \u003cstrong\u003emost\u003c/strong\u003e developers.  As a neovim user I greatly apreciate this.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"XVwpL_cAvrw\" title=\"ty: Astral\u0026#39;s New Type Checker (Formerly Red-Knot) - Talk Python to Me Ep. 506\" playlabel=\"Play: ty: Astral\u0026#39;s New Type Checker (Formerly Red-Knot) - Talk Python to Me Ep. 506\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nAstral is doing great things in the python industry.  They are disrupting entire categories of tools with extremely fast, easy to use, and feature rich alternatives that make it really hard to keep using the incumbent.   So far I am seeing no signs of evil, sometimes with such a disrupter there is some sort of downside that make it hard to want to do the switch.  In the interview they even mention things like leaning on lsp so that it works across all editors rather than building out vscode integrations that work for **most** developers.  As a neovim user I greatly apreciate this.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=XVwpL_cAvrw",
      "date_published": "2025-05-02T01:06:05Z",
      "date_modified": "2025-05-02T01:06:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-616/",
      "url": "https://waylonwalker.com/thought-616/",
      "title": "💭 Playground | Red Knot",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://types.ruff.rs/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"/Astral.png\" alt=\"Playground | ty — An in-browser playground for ty, an extremely fast Python type-checker written in Rust.\" loading=\"lazy\"/ data-glightbox=\"description: Playground | ty — An in-browser playground for ty, an extremely fast Python type-checker written in Rust.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePlayground | ty\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAn in-browser playground for ty, an extremely fast Python type-checker written in Rust.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etypes.ruff.rs\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ety, has a playground running at types.ruff.rs.  You can edit code in there and see what the type checker results would be in browser.  This looks good, excited to see it running in my lsp.\u003c/p\u003e\n\u003cp\u003eHere is an example where a Optional may not be defined.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/783e4d9e-8b23-4304-8921-2ae05aebcc8a.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/783e4d9e-8b23-4304-8921-2ae05aebcc8a.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eChecking for existance before using it resolves the issue.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/cc28335c-4130-4bf4-829d-0ff39f2aa32d.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/cc28335c-4130-4bf4-829d-0ff39f2aa32d.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://types.ruff.rs/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"/Astral.png\" alt=\"Playground | ty — An in-browser playground for ty, an extremely fast Python type-checker written in Rust.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePlayground | ty\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAn in-browser playground for ty, an extremely fast Python type-checker written in Rust.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etypes.ruff.rs\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nty, has a playground running at types.ruff.rs.  You can edit code in there and see what the type checker results would be in browser.  This looks good, excited to see it running in my lsp.\n\nHere is an example where a Optional may not be defined.\n\n![image](https://dropper.waylonwalker.com/api/file/783e4d9e-8b23-4304-8921-2ae05aebcc8a.webp)\n\nChecking for existance before using it resolves the issue.\n\n![image](https://dropper.waylonwalker.com/api/file/cc28335c-4130-4bf4-829d-0ff39f2aa32d.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://types.ruff.rs/",
      "date_published": "2025-05-02T01:02:31Z",
      "date_modified": "2025-05-02T01:02:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/markata-list-posts-by-year/",
      "url": "https://waylonwalker.com/markata-list-posts-by-year/",
      "title": "Markata list posts by year",
      "content_html": "\u003cp\u003eI was looking back at my \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\"\u003eanalytics\u003c/a\u003e page today and wondered what were my\nposts about back at the beginning.  My blog is managed by \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e so I\nlooked at a few ways you could pull those posts up.  Turns out it’s pretty\nsimple to do, use the markata map with a filter.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003emap\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;title, slug, date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"nb\"\u003efilter\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date.year==2016\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esort\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ethe filter is python eval that should evaluate to a boolean, all of the\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eattributes of the post are available to filter on.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch3 id=\"result\"\u003eResult \u003ca href=\"#result\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;⭐ jupyterlab jupyterlab\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;jupyterlab-jupyterlab\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2016\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e12\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e13\u003c/span\u003e\u003cspan class=\"p\"\u003e)),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;⭐ nickhould tidy-data-python\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;nickhould-tidy-data-python\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2016\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e12\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e9\u003c/span\u003e\u003cspan class=\"p\"\u003e)),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;⭐ mikeckennedy write-pythonic-code-demos\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;mikeckennedy-write-pythonic-code-demos\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2016\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e11\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s1\"\u003e\u0026#39;mikeckennedy-write-pythonic-code-for-better-data-science-webcast\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2016\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e11\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e22\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;⭐ rajshah4 dlgroup\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;rajshah4-dlgroup\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2016\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e11\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e18\u003c/span\u003e\u003cspan class=\"p\"\u003e)),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;⭐ pandas-dev pandas\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;pandas-dev-pandas\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edate\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"mi\"\u003e2016\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e10\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e5\u003c/span\u003e\u003cspan class=\"p\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou could use the \u003ccode\u003elist\u003c/code\u003e command as well right within your shell and the same\nmap and filters work.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer-0.1.3\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ markata list --map title --filter\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;date.year==2016\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e[\u003c/span\u003e22:35:06\u003cspan class=\"o\"\u003e]\u003c/span\u003e 2088/2145 posts skipped                                                                       skip.py:36\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e           57/2145 posts not skipped                                                                     skip.py:37\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⭐ pandas-dev pandas\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⭐ rajshah4 dlgroup\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⭐ mikeckennedy write-pythonic-code-demos\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⭐ nickhould tidy-data-python\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⭐ jupyterlab jupyterlab\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou could also do it with jin right inside of a markdown post using the\n\u003ca href=\"https://markata.dev/markata/plugins/jinja-md/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/markata.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/markata.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003ejinja_md\u003c/a\u003e plugin.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{% raw %}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{% for title, slug, date in markata.map(\u0026#39;title, slug, date\u0026#39;, filter=\u0026#39;date.year==2016\u0026#39;, sort=\u0026#39;date\u0026#39;) %}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003e*\u003c/span\u003e [\u003cspan class=\"nt\"\u003e{{title}}\u003c/span\u003e](\u003cspan class=\"na\"\u003e{{slug}}\u003c/span\u003e) - {{date}}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{% endfor %}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{% endraw %}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eYou do have to `jinja: true` in the frontmatter of the post.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch3 id=\"result-1\"\u003eResult \u003ca href=\"#result-1\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003e{% for title, slug, date in markata.map(’title, slug, date’, filter=‘date.year==2016’, sort=‘date’) %}\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"%7B%7Bslug%7D%7D\"\u003e{{title}}\u003c/a\u003e - {{date}}\n{% endfor %}\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nI was looking back at my \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e page today and wondered what were my\nposts about back at the beginning.  My blog is managed by \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e so I\nlooked at a few ways you could pull those posts up.  Turns out it's pretty\nsimple to do, use the markata map with a filter.\n\n\n``` python\nfrom markata import Markata\n\nm.map('title, slug, date', filter='date.year==2016', sort='date')\n```\n\n!!! Note\n    the filter is python eval that should evaluate to a boolean, all of the\n    attributes of the post are available to filter on.\n\n### Result\n\n``` python\n[\n    ('⭐ jupyterlab jupyterlab', 'jupyterlab-jupyterlab', datetime.date(2016, 12, 13)),\n    ('⭐ nickhould tidy-data-python', 'nickhould-tidy-data-python', datetime.date(2016, 12, 9)),\n    (\n        '⭐ mikeckennedy write-pythonic-code-demos',\n        'mikeckennedy-write-pythonic-code-demos',\n        datetime.date(2016, 11, 22)\n    ),\n    (\n        '⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast',\n        'mikeckennedy-write-pythonic-code-for-better-data-science-webcast',\n        datetime.date(2016, 11, 22)\n    ),\n    ('⭐ rajshah4 dlgroup', 'rajshah4-dlgroup', datetime.date(2016, 11, 18)),\n    ('⭐ pandas-dev pandas', 'pandas-dev-pandas', datetime.date(2016, 10, 5))\n]\n```\n\nYou could use the `list` command as well right within your shell and the same\nmap and filters work.\n\n``` bash\n⬢ [devtainer-0.1.3] ❯ markata list --map title --filter='date.year==2016'\n[22:35:06] 2088/2145 posts skipped                                                                       skip.py:36\n           57/2145 posts not skipped                                                                     skip.py:37\n\n⭐ pandas-dev pandas\n⭐ rajshah4 dlgroup\n⭐ mikeckennedy write-pythonic-code-for-better-data-science-webcast\n⭐ mikeckennedy write-pythonic-code-demos\n⭐ nickhould tidy-data-python\n⭐ jupyterlab jupyterlab\n```\n\nYou could also do it with jin right inside of a markdown post using the\n[jinja_md](https://markata.dev/markata/plugins/jinja-md/) plugin.\n\n``` md\n{% raw %}\n{% for title, slug, date in markata.map('title, slug, date', filter='date.year==2016', sort='date') %}\n* [{{title}}]({{slug}}) - {{date}}\n{% endfor %}\n{% endraw %}\n```\n\n!!! Note\n    You do have to `jinja: true` in the frontmatter of the post.\n\n### Result\n\n{% for title, slug, date in markata.map('title, slug, date', filter='date.year==2016', sort='date') %}\n* [{{title}}]({{slug}}) - {{date}}\n{% endfor %}\n",
      "summary": "I was looking back at my analytics page today and wondered what were my posts about back at the beginning. My blog is managed by markata so I looked at a few...",
      "date_published": "2025-05-01T22:35:47Z",
      "date_modified": "2025-05-01T22:35:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markata",
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-615/",
      "url": "https://waylonwalker.com/thought-615/",
      "title": "💭 pypi package ty",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pypi.org/project/ty/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://pypi.org/static/images/twitter.abaf4b19.webp\" alt=\"ty — An extremely fast Python type checker, written in Rust.\" loading=\"lazy\"/ data-glightbox=\"description: ty — An extremely fast Python type checker, written in Rust.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ety\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAn extremely fast Python type checker, written in Rust.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePyPI · pypi.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eAstral is working on some great things around python, they have created a high standard for python tooling built on rust that works really well, runs fast and covers everything in the space it resides in. ty appears to be their linter coming soon.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pypi.org/project/ty/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://pypi.org/static/images/twitter.abaf4b19.webp\" alt=\"ty — An extremely fast Python type checker, written in Rust.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ety\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAn extremely fast Python type checker, written in Rust.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePyPI \u0026middot; pypi.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAstral is working on some great things around python, they have created a high standard for python tooling built on rust that works really well, runs fast and covers everything in the space it resides in. ty appears to be their linter coming soon.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pypi.org/project/ty/",
      "date_published": "2025-05-01T20:44:27Z",
      "date_modified": "2025-05-01T20:44:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-614/",
      "url": "https://waylonwalker.com/thought-614/",
      "title": "💭 3D Printable Power Brick Bracket Designer",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bracket.engineer/?width=113.5\u0026amp;height=63\u0026amp;depth=98\u0026amp;bracketThickness=3\u0026amp;ribbingCount=9\u0026amp;ribbingThickness=2.5\u0026amp;holeDiameter=5\u0026amp;holeCount=1\u0026amp;earWidth=17\u0026amp;keyHole=on\u0026amp;color=%2344ff00\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"/assets/og-BzQVqFKk.png\" alt=\"3D Printable Power Brick Bracket Designer — Generate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions.\" loading=\"lazy\"/ data-glightbox=\"description: 3D Printable Power Brick Bracket Designer — Generate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e3D Printable Power Brick Bracket Designer\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eGenerate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBracket Engineer · bracket.engineer\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is madness that Wes Bos made this with manifold.js and no openscad!  Yes, I have these stupid brackets everywhere, yes, I hand model my own brackets.  No I don’t do it enough.  I don’t like that these model generators like openscad cannot make fillets and chamfers, but I appreciate the heck out of the speed and automation you can make iterations of things.\u003c/p\u003e\n\u003cp\u003eLink to the promo video.\n\u003ca href=\"https://bsky.app/profile/wesbos.com/post/3lo4h7unk6s2i\" 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\"\u003ehttps://bsky.app/profile/wesbos.com/post/3lo4h7unk6s2i\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bracket.engineer/?width=113.5\u0026amp;height=63\u0026amp;depth=98\u0026amp;bracketThickness=3\u0026amp;ribbingCount=9\u0026amp;ribbingThickness=2.5\u0026amp;holeDiameter=5\u0026amp;holeCount=1\u0026amp;earWidth=17\u0026amp;keyHole=on\u0026amp;color=%2344ff00\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"/assets/og-BzQVqFKk.png\" alt=\"3D Printable Power Brick Bracket Designer — Generate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e3D Printable Power Brick Bracket Designer\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eGenerate custom 3D printable power brick brackets for your devices. Design and export your own mounting solutions.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBracket Engineer \u0026middot; bracket.engineer\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is madness that Wes Bos made this with manifold.js and no openscad!  Yes, I have these stupid brackets everywhere, yes, I hand model my own brackets.  No I don't do it enough.  I don't like that these model generators like openscad cannot make fillets and chamfers, but I appreciate the heck out of the speed and automation you can make iterations of things.\n\nLink to the promo video.\nhttps://bsky.app/profile/wesbos.com/post/3lo4h7unk6s2i\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bracket.engineer/?width=113.5\u0026height=63\u0026depth=98\u0026bracketThickness=3\u0026ribbingCount=9\u0026ribbingThickness=2.5\u0026holeDiameter=5\u0026holeCount=1\u0026earWidth=17\u0026keyHo...",
      "date_published": "2025-05-01T14:17:43Z",
      "date_modified": "2025-05-01T14:17:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/wesbos-bracket-engineer/",
      "url": "https://waylonwalker.com/wesbos-bracket-engineer/",
      "title": "⭐ wesbos bracket.engineer",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/wesbos/bracket.engineer\" 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\"\u003ebracket.engineer\u003c/a\u003e by \u003ca href=\"https://github.com/wesbos\" 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\"\u003ewesbos\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eGenerate 3D printable power brick brackets.\u003c/p\u003e\n",
      "content_text": "\n[bracket.engineer](https://github.com/wesbos/bracket.engineer) by [wesbos](https://github.com/wesbos) is a game-changer in its space. Excited to see how it evolves.\n\nGenerate 3D printable power brick brackets.\n",
      "summary": "bracket.engineer by wesbos is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-05-01T14:02:55Z",
      "date_modified": "2025-05-01T14:02:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-613/",
      "url": "https://waylonwalker.com/thought-613/",
      "title": "💭 661: Working Vacations, Ripping Out JavaScript, and Non-US Clo...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://shoptalkshow.com/661/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://i0.wp.com/shoptalkshow.com/wp-content/uploads/2013/03/logo-itunes-1400.png?fit=1200%2C1200\u0026amp;ssl=1\" alt=\"661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options — What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…\" loading=\"lazy\"/ data-glightbox=\"description: 661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options — What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWhat are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eShopTalk · shoptalkshow.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eChris hit me where it feels about 10 minutes in.  He said he has not been writing on his site as much lately and how hard it is to get back in.  He mentions having a baby idea of a post, but then having the thought do you really want to come back from a long break with this!\u003c/p\u003e\n\u003cp\u003eMomentum is a b**** when you got it you cant stop, and when you don’t you can’t stop.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://shoptalkshow.com/661/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://i0.wp.com/shoptalkshow.com/wp-content/uploads/2013/03/logo-itunes-1400.png?fit=1200%2C1200\u0026amp;ssl=1\" alt=\"661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options — What are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e661: Working Vacations, Ripping Out JavaScript, and Non-US Cloud Service Options\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWhat are the non-US cloud services options, falling off the blogging train and trying to get back on, working on vacation, Chris recaps the Alaskan Folk Festival experience, how often do you go bac…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eShopTalk \u0026middot; shoptalkshow.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nChris hit me where it feels about 10 minutes in.  He said he has not been writing on his site as much lately and how hard it is to get back in.  He mentions having a baby idea of a post, but then having the thought do you really want to come back from a long break with this!\n\nMomentum is a b**** when you got it you cant stop, and when you don't you can't stop.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://shoptalkshow.com/661/",
      "date_published": "2025-05-01T14:00:47Z",
      "date_modified": "2025-05-01T14:00:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-612/",
      "url": "https://waylonwalker.com/thought-612/",
      "title": "💭 The Worst OS - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"8T5pyGiTPdE\" title=\"The Worst OS\" playlabel=\"Play: The Worst OS\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eHow is usability and it doing the thing I paid for it to do a selling point??  Any time I’ve touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"8T5pyGiTPdE\" title=\"The Worst OS\" playlabel=\"Play: The Worst OS\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nHow is usability and it doing the thing I paid for it to do a selling point??  Any time I've touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=8T5pyGiTPdE",
      "date_published": "2025-05-01T12:54:13Z",
      "date_modified": "2025-05-01T12:54:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-611/",
      "url": "https://waylonwalker.com/thought-611/",
      "title": "💭 The Worst OS - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"8T5pyGiTPdE\" title=\"The Worst OS\" playlabel=\"Play: The Worst OS\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eHow is usability and it doing the thing I paid for it to do a selling point??  Any time I’ve touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"8T5pyGiTPdE\" title=\"The Worst OS\" playlabel=\"Play: The Worst OS\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nHow is usability and it doing the thing I paid for it to do a selling point??  Any time I've touched a windows machine in the past 7 years has felt awkward, I have no idea where things are now, but they look so much worse.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=8T5pyGiTPdE",
      "date_published": "2025-05-01T12:54:12Z",
      "date_modified": "2025-05-01T12:54:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-610/",
      "url": "https://waylonwalker.com/thought-610/",
      "title": "💭 A quote from Mark Zuckerberg",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/May/1/mark-zuckerberg/#atom-everything\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from Mark Zuckerberg\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eYou also mentioned the whole Chatbot Arena thing, which I think is interesting and points to the challenge around how you do benchmarking. How do you know what models are …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog · simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting how confidently he says we can easily go to the top.  really makes you wonder what we the normies are leaving on the table by using these general purpose models and what could be achieved with really tuned in models.  Could I make an automatic blog tagger more accurately, maybe smaller, maybe tuned so well it runs fine on cpu?\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://simonwillison.net/2025/May/1/mark-zuckerberg/#atom-everything\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eA quote from Mark Zuckerberg\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eYou also mentioned the whole Chatbot Arena thing, which I think is interesting and points to the challenge around how you do benchmarking. How do you know what models are …\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSimon Willison’s Weblog \u0026middot; simonwillison.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting how confidently he says we can easily go to the top.  really makes you wonder what we the normies are leaving on the table by using these general purpose models and what could be achieved with really tuned in models.  Could I make an automatic blog tagger more accurately, maybe smaller, maybe tuned so well it runs fine on cpu? \n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://simonwillison.net/2025/May/1/mark-zuckerberg/#atom-everything",
      "date_published": "2025-05-01T12:50:52Z",
      "date_modified": "2025-05-01T12:50:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-609/",
      "url": "https://waylonwalker.com/thought-609/",
      "title": "💭 Chris Coyier",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/04/30/12292/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJ0eHQiOiIiLCJ0ZW1wbGF0ZSI6ImZ1bGxzY3JlZW4iLCJibG9nX2lkIjo3NDA3NDI0OH0.zracDfi8GeV59c7on0CEZkCHzSNytmK5iu1Pxt9ADYUMQ\" alt=\"— P. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be upda…\" loading=\"lazy\"/ data-glightbox=\"description: — P. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be upda…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e \u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eP. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier · chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThe web is everywhere, its the one true write once and run anywhere platform.  Millions sunk into browser performance and things like the v8 engine allow us to run our shitty websites anywhere and it still runs good…. most of the time\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/04/30/12292/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJ0eHQiOiIiLCJ0ZW1wbGF0ZSI6ImZ1bGxzY3JlZW4iLCJibG9nX2lkIjo3NDA3NDI0OH0.zracDfi8GeV59c7on0CEZkCHzSNytmK5iu1Pxt9ADYUMQ\" alt=\"— P. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be upda…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e \u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eP. Martin Ortiz: Web apps can easily adapt to whatever device you’re on. A single responsive website can run on your desktop, phone, tablet, or even a VR headset. What’s even more, they can be ...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier \u0026middot; chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe web is everywhere, its the one true write once and run anywhere platform.  Millions sunk into browser performance and things like the v8 engine allow us to run our shitty websites anywhere and it still runs good.... most of the time\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://chriscoyier.net/2025/04/30/12292/",
      "date_published": "2025-05-01T12:48:04Z",
      "date_modified": "2025-05-01T12:48:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-608/",
      "url": "https://waylonwalker.com/thought-608/",
      "title": "💭 Helm - Postiz Docs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://docs.postiz.com/installation/kubernetes-helm\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://postiz.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DInstallation%26title%3DHelm%26description%3DInstall%2BPostiz%2Busing%2BKubernetes%2Band%2BHelm%26logoLight%3Dhttps%253A%252F%252Fmintcdn.com%252Fpostiz%252FSZ3zBABjhg7UQcI8%252Flogo%252Flight.png%253Ffit%253Dmax%2526auto%253Dformat%2526n%253DSZ3zBABjhg7UQcI8%2526q%253D85%2526s%253Dab950a1a5aa687eb0de8156022f7c7c9%26logoDark%3Dhttps%253A%252F%252Fmintcdn.com%252Fpostiz%252FSZ3zBABjhg7UQcI8%252Flogo%252Fdark.png%253Ffit%253Dmax%2526auto%253Dformat%2526n%253DSZ3zBABjhg7UQcI8%2526q%253D85%2526s%253D4134d88b8fc8339a26775f8e48e95f7e%26primaryColor%3D%25239900e6%26lightColor%3D%2523b266ff%26darkColor%3D%25237700b3%26backgroundLight%3D%2523ffffff%26backgroundDark%3D%25230c0b10\u0026amp;w=1200\u0026amp;q=100\" alt=\"Helm - Postiz Documentation — Install Postiz using Kubernetes and Helm\" loading=\"lazy\"/ data-glightbox=\"description: Helm - Postiz Documentation — Install Postiz using Kubernetes and Helm\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHelm - Postiz Documentation\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInstall Postiz using Kubernetes and Helm\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePostiz Documentation · docs.postiz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI didn’t realize that postiz had a helm chart, I just hand rolled mine based on the compose file they provide.  I went from running the compose stack locally to running in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e with kubernetes.  I am using cnpg rather than a postgres container which I really like the workflow of as far as backup and restore.  The one hiccup I ran into was changing the domain from localhost to my homelab domain killed all of my integrations and they needed the redirect url updated.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://docs.postiz.com/installation/kubernetes-helm\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://postiz.mintlify.app/mintlify-assets/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3DInstallation%26title%3DHelm%26description%3DInstall%2BPostiz%2Busing%2BKubernetes%2Band%2BHelm%26logoLight%3Dhttps%253A%252F%252Fmintcdn.com%252Fpostiz%252FSZ3zBABjhg7UQcI8%252Flogo%252Flight.png%253Ffit%253Dmax%2526auto%253Dformat%2526n%253DSZ3zBABjhg7UQcI8%2526q%253D85%2526s%253Dab950a1a5aa687eb0de8156022f7c7c9%26logoDark%3Dhttps%253A%252F%252Fmintcdn.com%252Fpostiz%252FSZ3zBABjhg7UQcI8%252Flogo%252Fdark.png%253Ffit%253Dmax%2526auto%253Dformat%2526n%253DSZ3zBABjhg7UQcI8%2526q%253D85%2526s%253D4134d88b8fc8339a26775f8e48e95f7e%26primaryColor%3D%25239900e6%26lightColor%3D%2523b266ff%26darkColor%3D%25237700b3%26backgroundLight%3D%2523ffffff%26backgroundDark%3D%25230c0b10\u0026amp;w=1200\u0026amp;q=100\" alt=\"Helm - Postiz Documentation — Install Postiz using Kubernetes and Helm\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHelm - Postiz Documentation\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eInstall Postiz using Kubernetes and Helm\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePostiz Documentation \u0026middot; docs.postiz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI didn't realize that postiz had a helm chart, I just hand rolled mine based on the compose file they provide.  I went from running the compose stack locally to running in my homelab with kubernetes.  I am using cnpg rather than a postgres container which I really like the workflow of as far as backup and restore.  The one hiccup I ran into was changing the domain from localhost to my homelab domain killed all of my integrations and they needed the redirect url updated.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://docs.postiz.com/installation/kubernetes-helm",
      "date_published": "2025-04-30T21:44:17Z",
      "date_modified": "2025-04-30T21:44:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/portal-platformer-devlog-1/",
      "url": "https://waylonwalker.com/portal-platformer-devlog-1/",
      "title": "portal-platformer-devlog-1",
      "content_html": "\u003cp\u003eHere is the current state of my platformer yet to really be named, I want to\nmake something in between hollow knight and portal.\u003c/p\u003e\n\u003ch2 id=\"starting\"\u003eStarting \u003ca href=\"#starting\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI made one once in make code arcace on a pybadge.  It was quick and dirty, but\nfun to work on.  It had the basic of blocks that I could move, blocks i could\nput a portal onto, and a goal for each level.  Some levels you can just walk\nthrough and some levels required you to really think about where to place the\nportal.\u003c/p\u003e\n\u003ch2 id=\"history\"\u003eHistory \u003ca href=\"#history\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo this version of the game is a least 2 years in the making, I open it every\nfew months give it a day or two and move on.  Its mostly something that I work\non with my son.  He really likes to jump around on projects so its hard to make\nreal progress on something, but we are hitting an age where he is able to come\nback to projects a little better.\u003c/p\u003e\n\u003cp\u003eAll of this is built in python, and mostly before \u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003evibe coding\u003c/a\u003e was a thing, its\nmostly me trying to get out ideas as quick as my son is spitting out the the\nnext idea.\u003c/p\u003e\n\u003ch2 id=\"coyote\"\u003eCoyote \u003ca href=\"#coyote\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt includes a few frames of coyote so it feels a bit more like most games.\u003c/p\u003e\n\u003cp\u003e!! Note\nIf you are unfamiliar with the term coyote in platformers it allows you to\njump for a few frames after falling off a platform, like wiley coyoyte in\nLuney Toons.\u003c/p\u003e\n\u003ch2 id=\"wall-slidejump\"\u003eWall slide/jump \u003ca href=\"#wall-slidejump\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWall slide and jump work, but so is wall climb as an unintended side effect.\nWhen you are touching a wall, your fall speed is halved.\u003c/p\u003e\n\u003ch2 id=\"levels-and-loader\"\u003eLevels and loader \u003ca href=\"#levels-and-loader\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is a crude level loader that loads json levels with pydantic.  No editor\nyet, just hand editing levels with json.\u003c/p\u003e\n\u003ch2 id=\"checkpoints\"\u003eCheckpoints \u003ca href=\"#checkpoints\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt makes checkpoints, when you die, you go back to your last checkpoint.\nCheckpoints can be invisible, and have a link that turns them into a door to\nanother level.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/66c5b984-5450-48ee-9978-00fec4815807.mp4\" class=\"glightbox-link\" aria-label=\"66c5b984-5450-48ee-9978-00fec4815807.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/66c5b984-5450-48ee-9978-00fec4815807.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/66c5b984-5450-48ee-9978-00fec4815807.mp4\" type=\"video/mp4\"\u003e66c5b984-5450-48ee-9978-00fec4815807.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"no-art\"\u003eno art \u003ca href=\"#no-art\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThere is no art yet, just the skin of a platformer, levels, checkpoints, and\ncoyote.  No portals, but there is a pointer with a janky box that covers my\nlighting.\u003c/p\u003e\n",
      "content_text": "\nHere is the current state of my platformer yet to really be named, I want to\nmake something in between hollow knight and portal.\n\n\n## Starting\n\nI made one once in make code arcace on a pybadge.  It was quick and dirty, but\nfun to work on.  It had the basic of blocks that I could move, blocks i could\nput a portal onto, and a goal for each level.  Some levels you can just walk\nthrough and some levels required you to really think about where to place the\nportal.\n\n## History\n\nSo this version of the game is a least 2 years in the making, I open it every\nfew months give it a day or two and move on.  Its mostly something that I work\non with my son.  He really likes to jump around on projects so its hard to make\nreal progress on something, but we are hitting an age where he is able to come\nback to projects a little better.\n\nAll of this is built in python, and mostly before vibe coding was a thing, its\nmostly me trying to get out ideas as quick as my son is spitting out the the\nnext idea.\n\n## Coyote\n\nIt includes a few frames of coyote so it feels a bit more like most games.\n\n!! Note\n    If you are unfamiliar with the term coyote in platformers it allows you to\n    jump for a few frames after falling off a platform, like wiley coyoyte in\n    Luney Toons.\n\n## Wall slide/jump\n\nWall slide and jump work, but so is wall climb as an unintended side effect.\nWhen you are touching a wall, your fall speed is halved.\n\n## Levels and loader\n\nThere is a crude level loader that loads json levels with pydantic.  No editor\nyet, just hand editing levels with json.\n\n## Checkpoints\n\nIt makes checkpoints, when you die, you go back to your last checkpoint.\nCheckpoints can be invisible, and have a link that turns them into a door to\nanother level.\n\n![66c5b984-5450-48ee-9978-00fec4815807.mp4](https://dropper.waylonwalker.com/api/file/66c5b984-5450-48ee-9978-00fec4815807.mp4)\n\n\n## no art\n\nThere is no art yet, just the skin of a platformer, levels, checkpoints, and\ncoyote.  No portals, but there is a pointer with a janky box that covers my\nlighting.\n",
      "summary": "Here is the current state of my platformer yet to really be named, I want to make something in between hollow knight and portal.",
      "date_published": "2025-04-28T19:56:58Z",
      "date_modified": "2025-04-28T19:56:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/block-goose/",
      "url": "https://waylonwalker.com/block-goose/",
      "title": "⭐ block goose",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/block/goose\" 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\"\u003egoose\u003c/a\u003e by \u003ca href=\"https://github.com/block\" 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\"\u003eblock\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003ean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM\u003c/p\u003e\n",
      "content_text": "\nCheck out [goose](https://github.com/block/goose) by [block](https://github.com/block). It's a well-crafted project with great potential.\n\nan open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM\n",
      "summary": "Check out goose by block. It's a well-crafted project with great potential.",
      "date_published": "2025-04-28T01:37:03Z",
      "date_modified": "2025-04-28T01:37:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/manusa-kubernetes-mcp-server/",
      "url": "https://waylonwalker.com/manusa-kubernetes-mcp-server/",
      "title": "⭐ manusa kubernetes-mcp-server",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/manusa/kubernetes-mcp-server\" 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\"\u003ekubernetes-mcp-server\u003c/a\u003e by \u003ca href=\"https://github.com/manusa\" 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\"\u003emanusa\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eModel Context Protocol (MCP) server for Kubernetes and OpenShift\u003c/p\u003e\n",
      "content_text": "\nCheck out [kubernetes-mcp-server](https://github.com/manusa/kubernetes-mcp-server) by [manusa](https://github.com/manusa). It's a well-crafted project with great potential.\n\nModel Context Protocol (MCP) server for Kubernetes and OpenShift\n",
      "summary": "Check out kubernetes-mcp-server by manusa. It's a well-crafted project with great potential.",
      "date_published": "2025-04-28T01:36:45Z",
      "date_modified": "2025-04-28T01:36:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/containers-kubernetes-mcp-server/",
      "url": "https://waylonwalker.com/containers-kubernetes-mcp-server/",
      "title": "⭐ containers kubernetes-mcp-server",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/containers/kubernetes-mcp-server\" 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\"\u003ekubernetes-mcp-server\u003c/a\u003e by \u003ca href=\"https://github.com/containers\" 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\"\u003econtainers\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eModel Context Protocol (MCP) server for Kubernetes and OpenShift\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [kubernetes-mcp-server](https://github.com/containers/kubernetes-mcp-server) by [containers](https://github.com/containers).\n\nModel Context Protocol (MCP) server for Kubernetes and OpenShift\n",
      "summary": "Looking for inspiration? kubernetes-mcp-server by containers.",
      "date_published": "2025-04-28T01:36:45Z",
      "date_modified": "2025-04-28T01:36:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/punkpeye-awesome-mcp-servers/",
      "url": "https://waylonwalker.com/punkpeye-awesome-mcp-servers/",
      "title": "⭐ punkpeye awesome-mcp-servers",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/punkpeye\" 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\"\u003epunkpeye\u003c/a\u003e and their project \u003ca href=\"https://github.com/punkpeye/awesome-mcp-servers\" 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\"\u003eawesome-mcp-servers\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA collection of MCP servers.\u003c/p\u003e\n",
      "content_text": "\nCheck out [punkpeye](https://github.com/punkpeye) and their project [awesome-mcp-servers](https://github.com/punkpeye/awesome-mcp-servers).\n\nA collection of MCP servers.\n",
      "summary": "Check out punkpeye and their project awesome-mcp-servers.",
      "date_published": "2025-04-28T01:36:29Z",
      "date_modified": "2025-04-28T01:36:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/mozilla-ai-any-agent/",
      "url": "https://waylonwalker.com/mozilla-ai-any-agent/",
      "title": "⭐ mozilla-ai any-agent",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/mozilla-ai/any-agent\" 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\"\u003eany-agent\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/mozilla-ai\" 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\"\u003emozilla-ai\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eA single interface to build and evaluate different agent frameworks\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [any-agent](https://github.com/mozilla-ai/any-agent), an amazing project by [mozilla-ai](https://github.com/mozilla-ai). It's worth exploring!\n\nA single interface to build and evaluate different agent frameworks\n",
      "summary": "I'm really excited about any-agent, an amazing project by mozilla-ai. It's worth exploring!",
      "date_published": "2025-04-28T01:36:25Z",
      "date_modified": "2025-04-28T01:36:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-598/",
      "url": "https://waylonwalker.com/thought-598/",
      "title": "💭 Louis Rossmann's Keynote Speech on Right to Repair - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"2ol3rMem_Eg\" title=\"Louis Rossmann\u0026#39;s Keynote Speech on Right to Repair\" playlabel=\"Play: Louis Rossmann\u0026#39;s Keynote Speech on Right to Repair\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat talk from Lous Rossman!  TLDR you don’t own it, and stop pointing the finger calling everyone else an idiot for supporting the other brand, cause your’s probably also has different issues.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"2ol3rMem_Eg\" title=\"Louis Rossmann\u0026#39;s Keynote Speech on Right to Repair\" playlabel=\"Play: Louis Rossmann\u0026#39;s Keynote Speech on Right to Repair\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nGreat talk from Lous Rossman!  TLDR you don't own it, and stop pointing the finger calling everyone else an idiot for supporting the other brand, cause your's probably also has different issues.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=2ol3rMem_Eg",
      "date_published": "2025-04-27T19:35:21Z",
      "date_modified": "2025-04-27T19:35:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/dtnewman-zev/",
      "url": "https://waylonwalker.com/dtnewman-zev/",
      "title": "⭐ dtnewman zev",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/dtnewman\" 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\"\u003edtnewman\u003c/a\u003e and their project \u003ca href=\"https://github.com/dtnewman/zev\" 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\"\u003ezev\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA simple CLI tool to help you remember terminal commands\u003c/p\u003e\n",
      "content_text": "\nCheck out [dtnewman](https://github.com/dtnewman) and their project [zev](https://github.com/dtnewman/zev).\n\nA simple CLI tool to help you remember terminal commands\n",
      "summary": "Check out dtnewman and their project zev.",
      "date_published": "2025-04-25T13:40:11Z",
      "date_modified": "2025-04-25T13:40:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/stakater-reloader/",
      "url": "https://waylonwalker.com/stakater-reloader/",
      "title": "⭐ stakater Reloader",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/stakater/Reloader\" 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\"\u003eReloader\u003c/a\u003e by \u003ca href=\"https://github.com/stakater\" 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\"\u003estakater\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you’re using it!\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [Reloader](https://github.com/stakater/Reloader) by [stakater](https://github.com/stakater).\n\nA Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you're using it!\n",
      "summary": "Looking for inspiration? Reloader by stakater.",
      "date_published": "2025-04-24T02:03:36Z",
      "date_modified": "2025-04-24T02:03:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ublue-os-bazzite-arch/",
      "url": "https://waylonwalker.com/ublue-os-bazzite-arch/",
      "title": "⭐ ublue-os bazzite-arch",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/ublue-os/bazzite-arch\" 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\"\u003ebazzite-arch\u003c/a\u003e from \u003ca href=\"https://github.com/ublue-os\" 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\"\u003eublue-os\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA ready-to-game Arch Linux based OCI designed for use exclusively in distrobox.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [bazzite-arch](https://github.com/ublue-os/bazzite-arch) from [ublue-os](https://github.com/ublue-os).\n\nA ready-to-game Arch Linux based OCI designed for use exclusively in distrobox.\n",
      "summary": "I'm impressed by bazzite-arch from ublue-os.",
      "date_published": "2025-04-22T12:59:37Z",
      "date_modified": "2025-04-22T12:59:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ublue-os-arch-distrobox/",
      "url": "https://waylonwalker.com/ublue-os-arch-distrobox/",
      "title": "⭐ ublue-os arch-distrobox",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/ublue-os\" 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\"\u003eublue-os\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/ublue-os/arch-distrobox\" 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\"\u003earch-distrobox\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eAn Arch Linux OCI meant for use exclusively in Distrobox\u003c/p\u003e\n",
      "content_text": "\n[ublue-os](https://github.com/ublue-os) has done a fantastic job with [arch-distrobox](https://github.com/ublue-os/arch-distrobox). Highly recommend taking a look.\n\nAn Arch Linux OCI meant for use exclusively in Distrobox\n",
      "summary": "ublue-os has done a fantastic job with arch-distrobox. Highly recommend taking a look.",
      "date_published": "2025-04-22T12:59:35Z",
      "date_modified": "2025-04-22T12:59:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/reznormichael-hollow-knight-completion-check/",
      "url": "https://waylonwalker.com/reznormichael-hollow-knight-completion-check/",
      "title": "⭐ ReznoRMichael hollow-knight-completion-check",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/ReznoRMichael\" 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\"\u003eReznoRMichael\u003c/a\u003e and their project \u003ca href=\"https://github.com/ReznoRMichael/hollow-knight-completion-check\" 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\"\u003ehollow-knight-completion-check\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eApp for reading and analyzing a Hollow Knight save file. Shows what remains to do for full 112% Game Completion, Achievements, Hunter’s Journal, Collectibles, True Completion %. Includes a self-designed Hint system.\u003c/p\u003e\n",
      "content_text": "\nCheck out [ReznoRMichael](https://github.com/ReznoRMichael) and their project [hollow-knight-completion-check](https://github.com/ReznoRMichael/hollow-knight-completion-check).\n\nApp for reading and analyzing a Hollow Knight save file. Shows what remains to do for full 112% Game Completion, Achievements, Hunter's Journal, Collectibles, True Completion %. Includes a self-designed Hint system.\n",
      "summary": "Check out ReznoRMichael and their project hollow-knight-completion-check.",
      "date_published": "2025-04-20T16:28:11Z",
      "date_modified": "2025-04-20T16:28:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-597/",
      "url": "https://waylonwalker.com/thought-597/",
      "title": "💭 True Non-Planar Slicing is Here - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"M51bMMVWbC8\" title=\"3D Print Anything Without Supports\" playlabel=\"Play: 3D Print Anything Without Supports\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a wild concept for a slicer, essentially he didn’t even make a slicer just a crazy  pre-process and post prossess to cura slicer,  deforming the part until it doesn’t have any overhangs, creating a normal planar slice, then undeforming the output from cura.  He also mentions that the rapid moved needed modified as well. I’m assuming this is because they are generally long distances and not short, without breaking these long lines up we would still end up wtih a straight line after deform.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"M51bMMVWbC8\" title=\"3D Print Anything Without Supports\" playlabel=\"Play: 3D Print Anything Without Supports\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is a wild concept for a slicer, essentially he didn't even make a slicer just a crazy  pre-process and post prossess to cura slicer,  deforming the part until it doesn't have any overhangs, creating a normal planar slice, then undeforming the output from cura.  He also mentions that the rapid moved needed modified as well. I'm assuming this is because they are generally long distances and not short, without breaking these long lines up we would still end up wtih a straight line after deform.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=M51bMMVWbC8",
      "date_published": "2025-04-19T15:39:34Z",
      "date_modified": "2025-04-19T15:39:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-596/",
      "url": "https://waylonwalker.com/thought-596/",
      "title": "💭 Marp: Markdown Presentation Ecosystem",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://marp.app/#get-started\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://marp.app/assets/og-image.png\" alt=\"Marp: Markdown Presentation Ecosystem — Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.\" loading=\"lazy\"/ data-glightbox=\"description: Marp: Markdown Presentation Ecosystem — Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMarp: Markdown Presentation Ecosystem\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMarp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emarp.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIntersting markdown presentation tool, Looks very simple.  I really like split on \u003ccode\u003e---\u003c/code\u003e much better than by h1 or h2.  Their theme looks really nice in the screenshots.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://marp.app/#get-started\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://marp.app/assets/og-image.png\" alt=\"Marp: Markdown Presentation Ecosystem — Marp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMarp: Markdown Presentation Ecosystem\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMarp (also known as the Markdown Presentation Ecosystem) provides an intuitive experience for creating beautiful slide decks. You only have to focus on writing your story in a Markdown document.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003emarp.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIntersting markdown presentation tool, Looks very simple.  I really like split on `---` much better than by h1 or h2.  Their theme looks really nice in the screenshots.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://marp.app/#get-started",
      "date_published": "2025-04-17T13:01:40Z",
      "date_modified": "2025-04-17T13:01:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "markdown",
        "presentation",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-595/",
      "url": "https://waylonwalker.com/thought-595/",
      "title": "💭 Build UIs that don't suck - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"-h9rH539x1k\" title=\"Build UIs that don\u0026#39;t suck\" playlabel=\"Play: Build UIs that don\u0026#39;t suck\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eHow to make an entire clickable without presenting the entire content of the card as the link title.  These videos are great, I’ve ran into these types of problems so many times, and definitely did not know about things like isolate to keep the z-index scoped to one element.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eisolate - scope z-index inside this element so that it does not leak out.\u003c/li\u003e\n\u003cli\u003e[.relative [.absolute, inset-0, z-10]] - the inset zero is a modern shorthand for zeroing all sides, top-0, right-0, bottom-0, left-0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"-h9rH539x1k\" title=\"Build UIs that don\u0026#39;t suck\" playlabel=\"Play: Build UIs that don\u0026#39;t suck\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nHow to make an entire clickable without presenting the entire content of the card as the link title.  These videos are great, I've ran into these types of problems so many times, and definitely did not know about things like isolate to keep the z-index scoped to one element.\n\n* isolate - scope z-index inside this element so that it does not leak out.\n* [.relative [.absolute, inset-0, z-10]] - the inset zero is a modern shorthand for zeroing all sides, top-0, right-0, bottom-0, left-0.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=-h9rH539x1k",
      "date_published": "2025-04-15T13:50:53Z",
      "date_modified": "2025-04-15T13:50:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "css",
        "dev",
        "tailwindcss",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-594/",
      "url": "https://waylonwalker.com/thought-594/",
      "title": "💭 Let's Talk Open Source - Prime Reacts - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"SQ0mBnJmd6I\" title=\"Let\u0026#39;s Talk Open Source - Prime Reacts\" playlabel=\"Play: Let\u0026#39;s Talk Open Source - Prime Reacts\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is an absolute banger of a review by prime and Dylan Beetle.  I love the similar takes with different perspectives, would really like to see them podcast together, but this one way style interview does really well to cover a lot of issues in open source, rug pulls, version pinning, thankless maintainers, what its like to open source from a large company.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"SQ0mBnJmd6I\" title=\"Let\u0026#39;s Talk Open Source - Prime Reacts\" playlabel=\"Play: Let\u0026#39;s Talk Open Source - Prime Reacts\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis is an absolute banger of a review by prime and Dylan Beetle.  I love the similar takes with different perspectives, would really like to see them podcast together, but this one way style interview does really well to cover a lot of issues in open source, rug pulls, version pinning, thankless maintainers, what its like to open source from a large company.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=SQ0mBnJmd6I",
      "date_published": "2025-04-15T13:21:53Z",
      "date_modified": "2025-04-15T13:21:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "open-source",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-593/",
      "url": "https://waylonwalker.com/thought-593/",
      "title": "💭 Self-Hosted 29: Perils of Self-Hosting",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://selfhosted.show/29?t=637\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7296e34a-2697-479a-adfb-ad32329dd0b0/cover_medium.jpg?v=0\" alt=\"Perils of Self-Hosting — We speak to Kevin and Patricia from Traefik, discuss Alex\u0026#39;s recent ZFS snafu and we wonder if the new Chromecasts can match up to the Nvidia Shield.\" loading=\"lazy\"/ data-glightbox=\"description: Perils of Self-Hosting — We speak to Kevin and Patricia from Traefik, discuss Alex\u0026#39;s recent ZFS snafu and we wonder if the new Chromecasts can match up to the Nvidia Shield.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePerils of Self-Hosting\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWe speak to Kevin and Patricia from Traefik, discuss Alex\u0026#39;s recent ZFS snafu and we wonder if the new Chromecasts can match up to the Nvidia Shield.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSelf-Hosted · selfhosted.show\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting takes on Diun here. I agree that I like to be in control of updates and pinning not to latest.  both seemed like they weren’t going to run it because they can look up the latest version.  Maybe I need to be less aggressive on keeping things up to date and its a me problem.  I just got diun setup and hooked into ntfy, and I kinda like the automated checklist of new images that I can review and update.\u003c/p\u003e\n\u003cp\u003eTo be a bit more clear, having control over changes coming in from others,  even if I dont care to see the changelog, it is nice to roll out an update, have it in your \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e history, watch it deploy and work like before, if not roll back and read the changelog.  For internal applications I’m down for automated releases like argo image updater give you, this thing has already gone through review, launch the damn thing at least to a dev space.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://selfhosted.show/29?t=637\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7296e34a-2697-479a-adfb-ad32329dd0b0/cover_medium.jpg?v=0\" alt=\"Perils of Self-Hosting — We speak to Kevin and Patricia from Traefik, discuss Alex\u0026#39;s recent ZFS snafu and we wonder if the new Chromecasts can match up to the Nvidia Shield.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePerils of Self-Hosting\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eWe speak to Kevin and Patricia from Traefik, discuss Alex\u0026#39;s recent ZFS snafu and we wonder if the new Chromecasts can match up to the Nvidia Shield.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eSelf-Hosted \u0026middot; selfhosted.show\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting takes on Diun here. I agree that I like to be in control of updates and pinning not to latest.  both seemed like they weren't going to run it because they can look up the latest version.  Maybe I need to be less aggressive on keeping things up to date and its a me problem.  I just got diun setup and hooked into ntfy, and I kinda like the automated checklist of new images that I can review and update.\n\nTo be a bit more clear, having control over changes coming in from others,  even if I dont care to see the changelog, it is nice to roll out an update, have it in your git history, watch it deploy and work like before, if not roll back and read the changelog.  For internal applications I'm down for automated releases like argo image updater give you, this thing has already gone through review, launch the damn thing at least to a dev space.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://selfhosted.show/29?t=637",
      "date_published": "2025-04-15T13:18:51Z",
      "date_modified": "2025-04-15T13:18:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-592/",
      "url": "https://waylonwalker.com/thought-592/",
      "title": "💭 Spring 2025: Self-Hosted Update – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/04/13/self-hosted-update-spring-2025/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2025-04-13-self-hosted-update-spring-2025.png\" alt=\"Spring 2025: Self-Hosted Update — The one where things plod along\" loading=\"lazy\"/ data-glightbox=\"description: Spring 2025: Self-Hosted Update — The one where things plod along\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSpring 2025: Self-Hosted Update\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where things plod along\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDavids blogs always have so many links that send me down new rabbit holes.  Interesting that his experience with smart home is turning away, I’ve been somewhat interested for awhile, but never fully pulled the trigger on buying things.\u003c/p\u003e\n\u003cp\u003eI really hope tailscale enshitification does not take off, but really for me, I barely use it even as a homelabber.  Idk why, but every other homelabber praises it so much and I just dont find myself using it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2025/04/13/self-hosted-update-spring-2025/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2025-04-13-self-hosted-update-spring-2025.png\" alt=\"Spring 2025: Self-Hosted Update — The one where things plod along\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eSpring 2025: Self-Hosted Update\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where things plod along\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDavids blogs always have so many links that send me down new rabbit holes.  Interesting that his experience with smart home is turning away, I've been somewhat interested for awhile, but never fully pulled the trigger on buying things.\n\nI really hope tailscale enshitification does not take off, but really for me, I barely use it even as a homelabber.  Idk why, but every other homelabber praises it so much and I just dont find myself using it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2025/04/13/self-hosted-update-spring-2025/",
      "date_published": "2025-04-13T13:59:32Z",
      "date_modified": "2025-04-13T13:59:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-591/",
      "url": "https://waylonwalker.com/thought-591/",
      "title": "💭 Characters - Xe Iaso",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://xeiaso.net/characters/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/xeiaso.net.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/xeiaso.net.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCharacters\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eXe Iaso\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003exeiaso.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003exeiaso, has the coolest characters on her blog.  Definitely something I’d like to replicate.  I really appreciate how each one has its own sprite sheet, and they have conversations with each other.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/77dd4cb5-4fdb-4d09-8b9b-d9cdd72b2490.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/77dd4cb5-4fdb-4d09-8b9b-d9cdd72b2490.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://xeiaso.net/characters/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCharacters\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eXe Iaso\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003exeiaso.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nxeiaso, has the coolest characters on her blog.  Definitely something I'd like to replicate.  I really appreciate how each one has its own sprite sheet, and they have conversations with each other.\n\n![image](https://dropper.waylonwalker.com/api/file/77dd4cb5-4fdb-4d09-8b9b-d9cdd72b2490.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://xeiaso.net/characters/",
      "date_published": "2025-04-12T20:02:35Z",
      "date_modified": "2025-04-12T20:02:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-590/",
      "url": "https://waylonwalker.com/thought-590/",
      "title": "💭 Comparing Crazy Suspension Setups on a Bumpy Road! [Trailmaker...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"zolrLsjs1c4\" title=\"Comparing Crazy Suspension Setups on a Bumpy Road! [Trailmakers]\" playlabel=\"Play: Comparing Crazy Suspension Setups on a Bumpy Road! [Trailmakers]\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI want to go build these now, these are suspension setups I had no idea you could do in trailmakers.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"zolrLsjs1c4\" title=\"Comparing Crazy Suspension Setups on a Bumpy Road! [Trailmakers]\" playlabel=\"Play: Comparing Crazy Suspension Setups on a Bumpy Road! [Trailmakers]\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI want to go build these now, these are suspension setups I had no idea you could do in trailmakers.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=zolrLsjs1c4",
      "date_published": "2025-04-12T01:34:34Z",
      "date_modified": "2025-04-12T01:34:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "game",
        "gaming",
        "thought",
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/backup-distrobox-image/",
      "url": "https://waylonwalker.com/backup-distrobox-image/",
      "title": "backup distrobox image",
      "content_html": "\u003cp\u003eToday I’m upgrading my distrobox, but don’t want to end up in a situation where\nI can’t get anything done becauase I work out of my distrobox.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox ls\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox stop devtainer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox create --clone devtainer --name devtainer-20250409\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edistrobox enter devtainer\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I'm upgrading my distrobox, but don't want to end up in a situation where\nI can't get anything done becauase I work out of my distrobox.\n\n``` bash\ndistrobox ls\ndistrobox stop devtainer\ndistrobox create --clone devtainer --name devtainer-20250409\ndistrobox enter devtainer\n```\n",
      "summary": "Today I'm upgrading my distrobox, but don't want to end up in a situation where I can't get anything done becauase I work out of my distrobox.",
      "date_published": "2025-04-09T17:35:50Z",
      "date_modified": "2025-04-09T17:35:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "containers",
        "distrobox",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-589/",
      "url": "https://waylonwalker.com/thought-589/",
      "title": "💭 adrianlopezroche/fdupes: FDUPES is a program for identifying o...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/adrianlopezroche/fdupes\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/927bc41ba08ee458eb8c29880d368e701f4ad966b3092d810641a5379dc1eeaf/adrianlopezroche/fdupes\" alt=\"GitHub - adrianlopezroche/fdupes: FDUPES is a program for identifying or deleting duplicate files residing within specified directories. — FDUPES is a program for identifying or deleting duplicate files residing within specified directories. - adrianlopezroche/fdupes\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - adrianlopezroche/fdupes: FDUPES is a program for identifying or deleting duplicate files residing within specified directories. — FDUPES is a program for identifying or deleting duplicate files residing within specified directories. - adrianlopezroche/fdupes\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - adrianlopezroche/fdupes: FDUPES is a program for identifying or deleting duplicate files residing within specified directories.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFDUPES is a program for identifying or deleting duplicate files residing within specified directories. - adrianlopezroche/fdupes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ekeeping this in my back pocket for now.  I just moved a few TB’s of data in the \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e and I am expecting a lot of duplication to show up.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/adrianlopezroche/fdupes\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/927bc41ba08ee458eb8c29880d368e701f4ad966b3092d810641a5379dc1eeaf/adrianlopezroche/fdupes\" alt=\"GitHub - adrianlopezroche/fdupes: FDUPES is a program for identifying or deleting duplicate files residing within specified directories. — FDUPES is a program for identifying or deleting duplicate files residing within specified directories. - adrianlopezroche/fdupes\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - adrianlopezroche/fdupes: FDUPES is a program for identifying or deleting duplicate files residing within specified directories.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eFDUPES is a program for identifying or deleting duplicate files residing within specified directories. - adrianlopezroche/fdupes\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nkeeping this in my back pocket for now.  I just moved a few TB's of data in the homelab and I am expecting a lot of duplication to show up.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/adrianlopezroche/fdupes",
      "date_published": "2025-04-09T12:56:53Z",
      "date_modified": "2025-04-09T12:56:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/adrianlopezroche-fdupes/",
      "url": "https://waylonwalker.com/adrianlopezroche-fdupes/",
      "title": "⭐ adrianlopezroche fdupes",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/adrianlopezroche/fdupes\" 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\"\u003efdupes\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/adrianlopezroche\" 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\"\u003eadrianlopezroche\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eFDUPES is a program for identifying or deleting duplicate files residing within specified directories.\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [fdupes](https://github.com/adrianlopezroche/fdupes), an amazing project by [adrianlopezroche](https://github.com/adrianlopezroche). It's worth exploring!\n\nFDUPES is a program for identifying or deleting duplicate files residing within specified directories.\n",
      "summary": "I'm really excited about fdupes, an amazing project by adrianlopezroche. It's worth exploring!",
      "date_published": "2025-04-09T12:55:41Z",
      "date_modified": "2025-04-09T12:55:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-588/",
      "url": "https://waylonwalker.com/thought-588/",
      "title": "💭 Diun",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://crazymax.dev/diun/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://crazymax.dev/diun/assets/meta/card.png\" alt=\"Diun — Receive notifications when a Docker image is updated on a Docker registry\" loading=\"lazy\"/ data-glightbox=\"description: Diun — Receive notifications when a Docker image is updated on a Docker registry\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDiun\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReceive notifications when a Docker image is updated on a Docker registry\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecrazymax.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDiun, looks like a very interesting tool to monitor for image updates, it does not make any change, it only makes notifications.  This feels like an easy start to getting image updates started with low effort, keep \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e ops, but requires manual updates.  I see this as a tool that would be a great start and pair well with automated image updaters to ensure they are working as expected.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://crazymax.dev/diun/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://crazymax.dev/diun/assets/meta/card.png\" alt=\"Diun — Receive notifications when a Docker image is updated on a Docker registry\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eDiun\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReceive notifications when a Docker image is updated on a Docker registry\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecrazymax.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDiun, looks like a very interesting tool to monitor for image updates, it does not make any change, it only makes notifications.  This feels like an easy start to getting image updates started with low effort, keep git ops, but requires manual updates.  I see this as a tool that would be a great start and pair well with automated image updaters to ensure they are working as expected.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://crazymax.dev/diun/",
      "date_published": "2025-04-07T13:33:20Z",
      "date_modified": "2025-04-07T13:33:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "docker",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-587/",
      "url": "https://waylonwalker.com/thought-587/",
      "title": "💭 Keel",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://keel.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKeel\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKubernetes Operator to automate Helm, DaemonSet, StatefulSet \u0026amp; Deployment updates\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekeel.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eKeel looks interesting, I might give it a try as a simple image updater. I’m unsure if it fits my gitops patterns though.  I like to keep everything defined in \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e, I don’t like drift outside of that so Keel might not be the thing I want.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://keel.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKeel\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKubernetes Operator to automate Helm, DaemonSet, StatefulSet \u0026amp; Deployment updates\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekeel.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nKeel looks interesting, I might give it a try as a simple image updater. I'm unsure if it fits my gitops patterns though.  I like to keep everything defined in git, I don't like drift outside of that so Keel might not be the thing I want.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://keel.sh/",
      "date_published": "2025-04-07T13:30:49Z",
      "date_modified": "2025-04-07T13:30:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/changing-k8s-storage-class-migration-job/",
      "url": "https://waylonwalker.com/changing-k8s-storage-class-migration-job/",
      "title": "Changing k8s Storage Class - Migration Job",
      "content_html": "\u003cp\u003eI’m setting up longhorn in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e, and I ran into an issue where I\ninitially setup some pvcs under longhorn, and later realized that to get\nlonghorn to snapshot and backup I needed to hand edit volumes after the fact or\nchange storage class.  I’m all in on gitops so option 1 was not an option.  So\nchanging storageclass it is.\u003c/p\u003e\n\u003cp\u003eNow the issue is that you CANNOT mutate storageclass on a provisioned pvc, it\nis an immutable attribute.\u003c/p\u003e\n\u003ch2 id=\"migration-job\"\u003eMigration Job \u003ca href=\"#migration-job\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis migration job will create a new pvc with the new storageclass and move the\ndata from the old pvc to the new pvc.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eExisting Pods\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e This migration job will not work if you have a pod using the old pvc.  You\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ewill need to shutdown the pod and delete it.\u003c/p\u003e\n\u003c/div\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# old pvc with longhorn storageclass\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ePersistentVolumeClaim\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esite-pvc-longhorn\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enamespace\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewaylonwalker-com\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003estorageClassName\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003elonghorn-backup\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eaccessModes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"l\"\u003eReadWriteOnce\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eresources\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erequests\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003estorage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e5Gi\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# new pvc with longhorn-backup storageclass\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ePersistentVolumeClaim\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esite-pvc-longhorn-backup\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enamespace\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewaylonwalker-com\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003estorageClassName\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003elonghorn-backup\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eaccessModes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e- \u003cspan class=\"l\"\u003eReadWriteOnce\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003eresources\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erequests\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003estorage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e5Gi\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nn\"\u003e---\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e# migration job to move the data to the new pvc\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ebatch/v1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eJob\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003emetadata\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epvc-migration\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003enamespace\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ewaylonwalker-com\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e\u003cspan class=\"nt\"\u003etemplate\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003econtainers\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003epvc-migration\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eimage\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eubuntu:22.04\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003ecommand\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/bin/bash\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;-c\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003eargs\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e- \u003cspan class=\"p\"\u003e|\u003c/span\u003e\u003cspan class=\"sd\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e            echo \u0026#34;Starting migration...\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e            cd /data\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e            cp -av source/. destination/\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"sd\"\u003e            echo \u0026#34;Migration complete!\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumeMounts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esource-vol\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e\u003cspan class=\"nt\"\u003emountPath\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/data/source\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edest-vol\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e\u003cspan class=\"nt\"\u003emountPath\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e/data/destination\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003erestartPolicy\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eNever\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003evolumes\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esource-vol\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003epersistentVolumeClaim\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e\u003cspan class=\"nt\"\u003eclaimName\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esite-pvc-longhorn\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003edest-vol\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e        \u003c/span\u003e\u003cspan class=\"nt\"\u003epersistentVolumeClaim\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e          \u003c/span\u003e\u003cspan class=\"nt\"\u003eclaimName\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003esite-pvc-longhorn-backup\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eApply the manifests and wait for the job to complete.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl apply -f pvc-migration.yaml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"cleanup\"\u003eCleanup \u003ca href=\"#cleanup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI had chatgpt create me a script to help me find what is using the pvc so that\nit can be deleted.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNAMESPACE\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;waylonwalker-com\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ePVC_NAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;site-pvc-longhorn-new\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;⏳ Checking if PVC exists...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get pvc \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PVC_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$NAMESPACE\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;✅ PVC already deleted.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;🔍 Describe PVC...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl describe pvc \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PVC_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$NAMESPACE\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e -e \u003cspan class=\"s2\"\u003e\u0026#34;\\n🔗 Checking if any pod is using this PVC...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get pods -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$NAMESPACE\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -o json \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --arg PVC \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PVC_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"s1\"\u003e\u0026#39;.items[] | select(.spec.volumes[].persistentVolumeClaim.claimName == $PVC) | .metadata.name\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e -e \u003cspan class=\"s2\"\u003e\u0026#34;\\n🧹 Checking finalizers...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get pvc \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PVC_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$NAMESPACE\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -o json \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq \u003cspan class=\"s1\"\u003e\u0026#39;.metadata.finalizers\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e -e \u003cspan class=\"s2\"\u003e\u0026#34;\\n🔎 Checking associated VolumeAttachment...\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ePV_NAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ekubectl get pvc \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PVC_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$NAMESPACE\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e -o \u003cspan class=\"nv\"\u003ejsonpath\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;{.spec.volumeName}\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;🔗 PVC is bound to PV: \u003c/span\u003e\u003cspan class=\"nv\"\u003e$PV_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl get volumeattachment -A -o json \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --arg PV \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PV_NAME\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"s1\"\u003e\u0026#39;.items[] | select(.spec.source.persistentVolumeName == $PV) | {name: .metadata.name, node: .spec.nodeName, attached: .status.attached}\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e -e \u003cspan class=\"s2\"\u003e\u0026#34;\\n🚀 Done.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI had still had cronjob pods completed, so I had to delete them first.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e🔗 Checking \u003cspan class=\"k\"\u003eif\u003c/span\u003e any pod is using this PVC...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epvc-migration-ndv92\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylonwalker-com-cronjob-29057840-8s92p\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylonwalker-com-cronjob-29057850-4rvm9\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylonwalker-com-cronjob-29057860-6g89j\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl delete pod pvc-migration-ndv92 -n waylonwalker-com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl delete pod waylonwalker-com-cronjob-29057840-8s92p -n waylonwalker-com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl delete pod waylonwalker-com-cronjob-29057850-4rvm9 -n waylonwalker-com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl delete pod waylonwalker-com-cronjob-29057860-6g89j -n waylonwalker-com\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm setting up longhorn in my homelab, and I ran into an issue where I\ninitially setup some pvcs under longhorn, and later realized that to get\nlonghorn to snapshot and backup I needed to hand edit volumes after the fact or\nchange storage class.  I'm all in on gitops so option 1 was not an option.  So\nchanging storageclass it is.\n\nNow the issue is that you CANNOT mutate storageclass on a provisioned pvc, it\nis an immutable attribute.\n\n## Migration Job\n\nThis migration job will create a new pvc with the new storageclass and move the\ndata from the old pvc to the new pvc.\n\n!!! Note \"Existing Pods\"\n     This migration job will not work if you have a pod using the old pvc.  You\n     will need to shutdown the pod and delete it.\n\n``` yaml\n# old pvc with longhorn storageclass\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: site-pvc-longhorn\n  namespace: waylonwalker-com\nspec:\n  storageClassName: longhorn-backup\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\n# new pvc with longhorn-backup storageclass\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: site-pvc-longhorn-backup\n  namespace: waylonwalker-com\nspec:\n  storageClassName: longhorn-backup\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 5Gi\n---\n# migration job to move the data to the new pvc\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: pvc-migration\n  namespace: waylonwalker-com\nspec:\n  template:\n    spec:\n      containers:\n      - name: pvc-migration\n        image: ubuntu:22.04\n        command: [\"/bin/bash\", \"-c\"]\n        args:\n          - |\n            echo \"Starting migration...\"\n            cd /data\n            cp -av source/. destination/\n            echo \"Migration complete!\"\n        volumeMounts:\n        - name: source-vol\n          mountPath: /data/source\n        - name: dest-vol\n          mountPath: /data/destination\n      restartPolicy: Never\n      volumes:\n      - name: source-vol\n        persistentVolumeClaim:\n          claimName: site-pvc-longhorn\n      - name: dest-vol\n        persistentVolumeClaim:\n          claimName: site-pvc-longhorn-backup\n```\n\nApply the manifests and wait for the job to complete.\n\n``` bash\nkubectl apply -f pvc-migration.yaml\n```\n\n## Cleanup\n\nI had chatgpt create me a script to help me find what is using the pvc so that\nit can be deleted.\n\n``` bash\n#!/bin/bash\n\nNAMESPACE=\"waylonwalker-com\"\nPVC_NAME=\"site-pvc-longhorn-new\"\n\necho \"⏳ Checking if PVC exists...\"\nkubectl get pvc \"$PVC_NAME\" -n \"$NAMESPACE\" || {\n  echo \"✅ PVC already deleted.\"\n  exit 0\n}\n\necho \"🔍 Describe PVC...\"\nkubectl describe pvc \"$PVC_NAME\" -n \"$NAMESPACE\"\n\necho -e \"\\n🔗 Checking if any pod is using this PVC...\"\nkubectl get pods -n \"$NAMESPACE\" -o json | jq -r \\\n  --arg PVC \"$PVC_NAME\" \\\n  '.items[] | select(.spec.volumes[].persistentVolumeClaim.claimName == $PVC) | .metadata.name'\n\necho -e \"\\n🧹 Checking finalizers...\"\nkubectl get pvc \"$PVC_NAME\" -n \"$NAMESPACE\" -o json | jq '.metadata.finalizers'\n\necho -e \"\\n🔎 Checking associated VolumeAttachment...\"\nPV_NAME=$(kubectl get pvc \"$PVC_NAME\" -n \"$NAMESPACE\" -o jsonpath='{.spec.volumeName}')\necho \"🔗 PVC is bound to PV: $PV_NAME\"\n\nkubectl get volumeattachment -A -o json | jq \\\n  --arg PV \"$PV_NAME\" \\\n  '.items[] | select(.spec.source.persistentVolumeName == $PV) | {name: .metadata.name, node: .spec.nodeName, attached: .status.attached}'\n\necho -e \"\\n🚀 Done.\"\n```\n\nI had still had cronjob pods completed, so I had to delete them first.\n\n``` bash\n🔗 Checking if any pod is using this PVC...\npvc-migration-ndv92\nwaylonwalker-com-cronjob-29057840-8s92p\nwaylonwalker-com-cronjob-29057850-4rvm9\nwaylonwalker-com-cronjob-29057860-6g89j\n```\n\n``` bash\nkubectl delete pod pvc-migration-ndv92 -n waylonwalker-com\nkubectl delete pod waylonwalker-com-cronjob-29057840-8s92p -n waylonwalker-com\nkubectl delete pod waylonwalker-com-cronjob-29057850-4rvm9 -n waylonwalker-com\nkubectl delete pod waylonwalker-com-cronjob-29057860-6g89j -n waylonwalker-com\n```\n",
      "summary": "I'm setting up longhorn in my homelab, and I ran into an issue where I initially setup some pvcs under longhorn, and later realized that to get longhorn to...",
      "date_published": "2025-04-04T09:57:50Z",
      "date_modified": "2025-04-04T09:57:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "homelab",
        "kubernetes",
        "longhorn"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-586/",
      "url": "https://waylonwalker.com/thought-586/",
      "title": "💭 World's easiest Live dashboard with htmx - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.youtube.com/watch\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.youtube.com/img/desktop/yt_1200.png\" alt=\"YouTube — Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\" loading=\"lazy\"/ data-glightbox=\"description: YouTube — Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYouTube\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eEnjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eyoutube.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn he makes this easy.  I did not know about \u003ccode\u003ehx-select\u003c/code\u003e.  yes there is waste in requesting the entire thing every 5s, but damn that was easy to get life reload.  I’ve only done very specific backend endpoints, built pages up from partials, made endpoints for partials.  keeping this one in my back pocket.\u003c/p\u003e\n\u003cp\u003eI’m just kind of amazed that he could do this all in \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e without touching the backend or js, typically things like this require one or the other.  Yes js is running, but no other js library I’m aware of lets you do this.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.youtube.com/watch\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.youtube.com/img/desktop/yt_1200.png\" alt=\"YouTube — Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eYouTube\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eEnjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eyoutube.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nDamn he makes this easy.  I did not know about `hx-select`.  yes there is waste in requesting the entire thing every 5s, but damn that was easy to get life reload.  I've only done very specific backend endpoints, built pages up from partials, made endpoints for partials.  keeping this one in my back pocket.\n\nI'm just kind of amazed that he could do this all in html without touching the backend or js, typically things like this require one or the other.  Yes js is running, but no other js library I'm aware of lets you do this.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch",
      "date_published": "2025-03-29T15:04:45Z",
      "date_modified": "2025-03-29T15:04:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "htmx",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/homelab-drive-ids/",
      "url": "https://waylonwalker.com/homelab-drive-ids/",
      "title": "homelab drive ids",
      "content_html": "\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003els -l /dev/disk/by-id/\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eDrive Bay 1\nata-ST4000VN008-2DR166_ZDHBZSWZ\u003c/p\u003e\n\u003cp\u003e+————————————————————————-+\n| [ Power]  [ Reset ]                                                     |\n+————————————————————————-+\n| [ BAY 5 ]  3TB WD30EFRX WMC4N0D3J9R7 ext4 /mnt/sdf4                     |\n+————————————————————————-+\n| [ BAY 4 ]  14TB EXOS ZTM09R9N zfs main pool mirror /mnt/main            |\n+————————————————————————-+\n| [ BAY 3 ]  14TB EXOS ZTM0AALS zfs main pool mirror /mnt/main            |\n+——————————————-+\n| [ BAY 2 ]  4TB IRONWOLF ZDHBZV3N zfs tank pool mirror /mnt/tank         |\n+————————————————————————-+\n| [ BAY 1 ]  4TB IRONWOLF ZDHBZSWZ zfs tank pool mirror /mnt/tank         |\n+————————————————————————-+\u003c/p\u003e\n",
      "content_text": "\n``` bash\nls -l /dev/disk/by-id/\n```\n\nDrive Bay 1\nata-ST4000VN008-2DR166_ZDHBZSWZ\n\n+-------------------------------------------------------------------------+\n| [ Power]  [ Reset ]                                                     |\n+-------------------------------------------------------------------------+\n| [ BAY 5 ]  3TB WD30EFRX WMC4N0D3J9R7 ext4 /mnt/sdf4                     |\n+-------------------------------------------------------------------------+\n| [ BAY 4 ]  14TB EXOS ZTM09R9N zfs main pool mirror /mnt/main            |\n+-------------------------------------------------------------------------+\n| [ BAY 3 ]  14TB EXOS ZTM0AALS zfs main pool mirror /mnt/main            |\n+-------------------------------------------+\n| [ BAY 2 ]  4TB IRONWOLF ZDHBZV3N zfs tank pool mirror /mnt/tank         |\n+-------------------------------------------------------------------------+\n| [ BAY 1 ]  4TB IRONWOLF ZDHBZSWZ zfs tank pool mirror /mnt/tank         |\n+-------------------------------------------------------------------------+\n",
      "summary": "Drive Bay 1 ata-ST4000VN008-2DR166_ZDHBZSWZ",
      "date_published": "2025-03-26T11:22:07Z",
      "date_modified": "2025-03-26T11:22:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab"
      ]
    },
    {
      "id": "https://waylonwalker.com/ramilito-kubectl-nvim/",
      "url": "https://waylonwalker.com/ramilito-kubectl-nvim/",
      "title": "⭐ Ramilito kubectl.nvim",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/Ramilito/kubectl.nvim\" 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\"\u003ekubectl.nvim\u003c/a\u003e by \u003ca href=\"https://github.com/Ramilito\" 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\"\u003eRamilito\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003e⎈ Streamline your Kubernetes management within Neovim—control and monitor your cluster seamlessly, all without leaving your coding environment.\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [kubectl.nvim](https://github.com/Ramilito/kubectl.nvim) by [Ramilito](https://github.com/Ramilito), and it's truly impressive.\n\n⎈ Streamline your Kubernetes management within Neovim—control and monitor your cluster seamlessly, all without leaving your coding environment.\n",
      "summary": "I recently discovered kubectl.nvim by Ramilito, and it's truly impressive.",
      "date_published": "2025-03-25T19:16:43Z",
      "date_modified": "2025-03-25T19:16:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-585/",
      "url": "https://waylonwalker.com/thought-585/",
      "title": "💭 Resetting a lost admin password — Nextcloud latest Administrat...",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html\" class=\"glightbox-link\" aria-label=\"https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html\" alt=\"https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html\"/ data-glightbox=\"description: https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThis is a handy line to reset your admin password in nextcloud.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html](/static/https://docs.nextcloud.com/server/latest/admin_manual/configuration_user/reset_admin_password.html)\n\nThis is a handy line to reset your admin password in nextcloud.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://docs.nextcloud.com/server/latest/admin_user/reset_password.html",
      "date_published": "2025-03-24T00:26:45Z",
      "date_modified": "2025-03-24T00:26:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-584/",
      "url": "https://waylonwalker.com/thought-584/",
      "title": "💭 Redis configuration | Docs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://redis.io/docs/latest/operate/oss_and_stack/management/config/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/redis.io.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/redis.io.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRedis configuration\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOverview of redis.conf, the Redis configuration file\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDocs · redis.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eredis has all of their default self documented configs hosted here.  You can pull the default redis.conf for any of the major releases.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://redis.io/docs/latest/operate/oss_and_stack/management/config/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRedis configuration\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOverview of redis.conf, the Redis configuration file\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eDocs \u0026middot; redis.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nredis has all of their default self documented configs hosted here.  You can pull the default redis.conf for any of the major releases.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://redis.io/docs/latest/operate/oss_stack/management/config/",
      "date_published": "2025-03-20T20:14:57Z",
      "date_modified": "2025-03-20T20:14:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/xpipe-io-xpipe-webtop/",
      "url": "https://waylonwalker.com/xpipe-io-xpipe-webtop/",
      "title": "⭐ xpipe-io xpipe-webtop",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/xpipe-io/xpipe-webtop\" 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\"\u003expipe-webtop\u003c/a\u003e, created by \u003ca href=\"https://github.com/xpipe-io\" 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\"\u003expipe-io\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA containerized web-based desktop environment for XPipe\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [xpipe-webtop](https://github.com/xpipe-io/xpipe-webtop), created by [xpipe-io](https://github.com/xpipe-io).\n\nA containerized web-based desktop environment for XPipe\n",
      "summary": "If you're into interesting projects, don't miss out on xpipe-webtop, created by xpipe-io.",
      "date_published": "2025-03-20T14:05:37Z",
      "date_modified": "2025-03-20T14:05:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/xpipe-io-xpipe/",
      "url": "https://waylonwalker.com/xpipe-io-xpipe/",
      "title": "⭐ xpipe-io xpipe",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/xpipe-io/xpipe\" 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\"\u003expipe\u003c/a\u003e by \u003ca href=\"https://github.com/xpipe-io\" 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\"\u003expipe-io\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eAccess your entire server infrastructure from your local desktop\u003c/p\u003e\n",
      "content_text": "\n[xpipe](https://github.com/xpipe-io/xpipe) by [xpipe-io](https://github.com/xpipe-io) is a game-changer in its space. Excited to see how it evolves.\n\nAccess your entire server infrastructure from your local desktop\n",
      "summary": "xpipe by xpipe-io is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-03-17T23:00:55Z",
      "date_modified": "2025-03-17T23:00:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/use-pbpaste-for-clean-shell-history/",
      "url": "https://waylonwalker.com/use-pbpaste-for-clean-shell-history/",
      "title": "Use pbpaste for clean shell history",
      "content_html": "\u003cp\u003eUsing \u003ccode\u003epbpaste\u003c/code\u003e for command substitution keeps sensitive or long URLs out of\nyour shell history. Instead of typing \u003ccode\u003egit clone https://github.com/user/repo-with-long-name.git\u003c/code\u003e, copy the URL to clipboard and\nrun \u003ccode\u003egit clone \u0026#34;$(pbpaste)\u0026#34;\u003c/code\u003e. This prevents the URL from appearing in\n\u003ccode\u003e~/.bash_history\u003c/code\u003e or \u003ccode\u003e~/.zsh_history\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eTo get pbpaste working on both Xorg and Wayland, add this to your shell config:\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e \u003cspan class=\"k\"\u003e$(\u003c/span\u003e\u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e -v wl-copy\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003epbcopy\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;wl-copy\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pbpaste\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e wl-paste\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e \u003cspan class=\"k\"\u003e$(\u003c/span\u003e\u003cspan class=\"nb\"\u003ecommand\u003c/span\u003e -v xclip\u003cspan class=\"k\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nv\"\u003epbcopy\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;xclip -selection clipboard\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    pbpaste\u003cspan class=\"o\"\u003e()\u003c/span\u003e \u003cspan class=\"o\"\u003e{\u003c/span\u003e xclip -selection clipboard -o\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe function approach (instead of alias) enables command substitution, while\nthe quotes around \u003ccode\u003e$(pbpaste)\u003c/code\u003e handle spaces and special characters safely.\u003c/p\u003e\n\u003cp\u003eNow you can use it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003egit clone \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003epbpaste\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eMore importantly secrets can stay out of your history.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eGITHUB_TOKEN\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003epbpaste\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eAWS_ACCESS_KEY_ID\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003epbpaste\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eAWS_SECRET_ACCESS_KEY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003epbpaste\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eDATABASE_URL\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003epbpaste\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nUsing `pbpaste` for command substitution keeps sensitive or long URLs out of\nyour shell history. Instead of typing `git clone\nhttps://github.com/user/repo-with-long-name.git`, copy the URL to clipboard and\nrun `git clone \"$(pbpaste)\"`. This prevents the URL from appearing in\n`~/.bash_history` or `~/.zsh_history`.\n\nTo get pbpaste working on both Xorg and Wayland, add this to your shell config:\n\n```bash\nif [[ $(command -v wl-copy) ]]; then\n    alias pbcopy='wl-copy'\n    pbpaste() { wl-paste; }\nelif [[ $(command -v xclip) ]]; then\n    alias pbcopy='xclip -selection clipboard'\n    pbpaste() { xclip -selection clipboard -o; }\nfi\n```\n\nThe function approach (instead of alias) enables command substitution, while\nthe quotes around `$(pbpaste)` handle spaces and special characters safely.\n\nNow you can use it.\n\n``` bash\ngit clone \"$(pbpaste)\"\n```\n\nMore importantly secrets can stay out of your history.\n\n``` bash\nexport GITHUB_TOKEN=\"$(pbpaste)\"\nexport AWS_ACCESS_KEY_ID=\"$(pbpaste)\"\nexport AWS_SECRET_ACCESS_KEY=\"$(pbpaste)\"\nexport DATABASE_URL=\"$(pbpaste)\"\n```\n",
      "summary": "Using for command substitution keeps sensitive or long URLs out of your shell history. Instead of typing , copy the URL to clipboard and run . This prevents...",
      "date_published": "2025-03-17T12:00:00Z",
      "date_modified": "2025-03-17T12:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-583/",
      "url": "https://waylonwalker.com/thought-583/",
      "title": "💭 hotel_bookings.csv",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.kaggle.com/datasets/ahmedsafwatgb20/hotel-bookingscsv?resource=download\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://storage.googleapis.com/kaggle-datasets-images/new-version-temp-images/default-backgrounds-55.png-8181871/dataset-card.png\" alt=\"hotel_bookings.csv — Discover what actually works in AI. Join millions of builders, researchers, and labs evaluating agents, models, and frontier technology through crowdsourced benchmarks, competitions, and hackathons.\" loading=\"lazy\"/ data-glightbox=\"description: hotel_bookings.csv — Discover what actually works in AI. Join millions of builders, researchers, and labs evaluating agents, models, and frontier technology through crowdsourced benchmarks, competitions, and hackathons.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ehotel_bookings.csv\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDiscover what actually works in AI. Join millions of builders, researchers, and labs evaluating agents, models, and frontier technology through crowdsourced benchmarks, competitions, and hackathons.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekaggle.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003enice dataset to use for example / test projects.  I’m using it to play with duckdb currently.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.kaggle.com/datasets/ahmedsafwatgb20/hotel-bookingscsv?resource=download\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://storage.googleapis.com/kaggle-datasets-images/new-version-temp-images/default-backgrounds-55.png-8181871/dataset-card.png\" alt=\"hotel_bookings.csv — Discover what actually works in AI. Join millions of builders, researchers, and labs evaluating agents, models, and frontier technology through crowdsourced benchmarks, competitions, and hackathons.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ehotel_bookings.csv\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDiscover what actually works in AI. Join millions of builders, researchers, and labs evaluating agents, models, and frontier technology through crowdsourced benchmarks, competitions, and hackathons.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekaggle.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nnice dataset to use for example / test projects.  I'm using it to play with duckdb currently.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.kaggle.com/datasets/ahmedsafwatgb20/hotel-bookingscsv?resource=download",
      "date_published": "2025-03-15T22:32:44Z",
      "date_modified": "2025-03-15T22:32:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thps-1-downtown-gaps/",
      "url": "https://waylonwalker.com/thps-1-downtown-gaps/",
      "title": "THPS 1 Downtown Gaps",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/74936acc-5cfb-430a-b31b-d8f9888b437d.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-28T00-44-32-696Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/74936acc-5cfb-430a-b31b-d8f9888b437d.png\" alt=\"screenshot-2025-02-28T00-44-32-696Z.png\"/ data-glightbox=\"description: screenshot-2025-02-28T00-44-32-696Z.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bb603b2c-e1be-4d8f-80e3-47c2715a2643.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-28T00-45-05-468Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/bb603b2c-e1be-4d8f-80e3-47c2715a2643.png\" alt=\"screenshot-2025-02-28T00-45-05-468Z.png\"/ data-glightbox=\"description: screenshot-2025-02-28T00-45-05-468Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003ePreviously \u003ca href=\"/thps-1-skate-park-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Skate Park Gaps\" data-description=\"Previously thps-1-mall-gaps Next thps-1-downtown-gaps\" data-date=\"2025-03-08\" data-preview=\"Previously thps-1-mall-gaps Next thps-1-downtown-gaps\"\u003eTHPS 1 Skate Park Gaps\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"big-ass\"\u003eBig Ass \u003ca href=\"#big-ass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c9020f68-1398-468b-8235-235be767f89d.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-BigAss.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c9020f68-1398-468b-8235-235be767f89d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c9020f68-1398-468b-8235-235be767f89d.mp4\" type=\"video/mp4\"\u003eTHPS1-5-BigAss.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"billboard-grind\"\u003eBillboard Grind \u003ca href=\"#billboard-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/34593c9a-ca7d-435f-b1df-cd23081d13e9.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-BillboardGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/34593c9a-ca7d-435f-b1df-cd23081d13e9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/34593c9a-ca7d-435f-b1df-cd23081d13e9.mp4\" type=\"video/mp4\"\u003eTHPS1-5-BillboardGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"bs-gap\"\u003eBS Gap \u003ca href=\"#bs-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5521048b-9929-4153-994c-5abc7e88fc2a.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-BSGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/5521048b-9929-4153-994c-5abc7e88fc2a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/5521048b-9929-4153-994c-5abc7e88fc2a.mp4\" type=\"video/mp4\"\u003eTHPS1-5-BSGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"bs-grind\"\u003eBS Grind \u003ca href=\"#bs-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/737d36ef-323c-4bf2-8294-cd962d0c5f47.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-BSGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/737d36ef-323c-4bf2-8294-cd962d0c5f47.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/737d36ef-323c-4bf2-8294-cd962d0c5f47.mp4\" type=\"video/mp4\"\u003eTHPS1-5-BSGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"burly-deck-gap\"\u003eBurly Deck Gap \u003ca href=\"#burly-deck-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/edcb7767-f6d9-4ce0-b6f3-07d5ceb82bbc.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-BurlyDeckGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/edcb7767-f6d9-4ce0-b6f3-07d5ceb82bbc.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/edcb7767-f6d9-4ce0-b6f3-07d5ceb82bbc.mp4\" type=\"video/mp4\"\u003eTHPS1-5-BurlyDeckGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"car-ollie\"\u003eCar Ollie \u003ca href=\"#car-ollie\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e9a91ddf-318c-4e10-9268-b41c607ff8e8.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-CarOllie.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e9a91ddf-318c-4e10-9268-b41c607ff8e8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e9a91ddf-318c-4e10-9268-b41c607ff8e8.mp4\" type=\"video/mp4\"\u003eTHPS1-5-CarOllie.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5b813fb2-8b22-4129-a01e-3a1f9b7fcb3e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-CarPlant.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/5b813fb2-8b22-4129-a01e-3a1f9b7fcb3e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/5b813fb2-8b22-4129-a01e-3a1f9b7fcb3e.mp4\" type=\"video/mp4\"\u003eTHPS1-5-CarPlant.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"cheesy-deck-gap\"\u003eCheesy Deck Gap \u003ca href=\"#cheesy-deck-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c17b7db0-77b4-4769-af36-640070325846.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-CheesyDeckGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c17b7db0-77b4-4769-af36-640070325846.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c17b7db0-77b4-4769-af36-640070325846.mp4\" type=\"video/mp4\"\u003eTHPS1-5-CheesyDeckGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"death-grind\"\u003eDeath Grind \u003ca href=\"#death-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/af8da429-0ac1-469e-97fd-37971ad0ba79.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-DeathGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/af8da429-0ac1-469e-97fd-37971ad0ba79.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/af8da429-0ac1-469e-97fd-37971ad0ba79.mp4\" type=\"video/mp4\"\u003eTHPS1-5-DeathGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"deck-gap\"\u003eDeck Gap \u003ca href=\"#deck-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/95ec787a-6520-4868-ae8c-b2953a2a1551.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-DeckGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/95ec787a-6520-4868-ae8c-b2953a2a1551.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/95ec787a-6520-4868-ae8c-b2953a2a1551.mp4\" type=\"video/mp4\"\u003eTHPS1-5-DeckGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"dirty-rail\"\u003eDirty Rail \u003ca href=\"#dirty-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/16028649-1e78-4a5a-a88b-f143eac6b538.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-DirtyRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/16028649-1e78-4a5a-a88b-f143eac6b538.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/16028649-1e78-4a5a-a88b-f143eac6b538.mp4\" type=\"video/mp4\"\u003eTHPS1-5-DirtyRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"glass-gap\"\u003eGlass Gap \u003ca href=\"#glass-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4138f100-9ec0-4e38-b328-20d3a2fd41b7.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-GlassGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4138f100-9ec0-4e38-b328-20d3a2fd41b7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4138f100-9ec0-4e38-b328-20d3a2fd41b7.mp4\" type=\"video/mp4\"\u003eTHPS1-5-GlassGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kicker-gap\"\u003eKicker Gap \u003ca href=\"#kicker-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4b0a0af2-24bd-4011-8c2c-536ef63fd63c.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-KickerGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4b0a0af2-24bd-4011-8c2c-536ef63fd63c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4b0a0af2-24bd-4011-8c2c-536ef63fd63c.mp4\" type=\"video/mp4\"\u003eTHPS1-5-KickerGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kicker-2-edge\"\u003eKicker 2 Edge \u003ca href=\"#kicker-2-edge\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/16e84f08-73ba-4cc3-ba51-90dceb35e91d.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-Kicker2Edge.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/16e84f08-73ba-4cc3-ba51-90dceb35e91d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/16e84f08-73ba-4cc3-ba51-90dceb35e91d.mp4\" type=\"video/mp4\"\u003eTHPS1-5-Kicker2Edge.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kicker-2-street\"\u003eKicker 2 Street \u003ca href=\"#kicker-2-street\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a3c73018-c602-4bd0-9c96-7e81b128889b.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-Kicker2Street.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/a3c73018-c602-4bd0-9c96-7e81b128889b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/a3c73018-c602-4bd0-9c96-7e81b128889b.mp4\" type=\"video/mp4\"\u003eTHPS1-5-Kicker2Street.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"rail-2-rail\"\u003eRail 2 Rail \u003ca href=\"#rail-2-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b07d1500-0e3a-4c0f-b98d-27d6a75ca305.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-Rail2Rail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b07d1500-0e3a-4c0f-b98d-27d6a75ca305.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b07d1500-0e3a-4c0f-b98d-27d6a75ca305.mp4\" type=\"video/mp4\"\u003eTHPS1-5-Rail2Rail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"roof-2-roof\"\u003eRoof 2 Roof \u003ca href=\"#roof-2-roof\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fdcd25cd-a73a-49c4-bf06-e2058eb7cecb.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-Roof2Roof.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/fdcd25cd-a73a-49c4-bf06-e2058eb7cecb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/fdcd25cd-a73a-49c4-bf06-e2058eb7cecb.mp4\" type=\"video/mp4\"\u003eTHPS1-5-Roof2Roof.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"secret-tunnel-entrance\"\u003eSecret Tunnel Entrance \u003ca href=\"#secret-tunnel-entrance\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/06f4bcef-ec5a-4480-80e8-8ea8423f5b28.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-SecretTunnelEntrance.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/06f4bcef-ec5a-4480-80e8-8ea8423f5b28.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/06f4bcef-ec5a-4480-80e8-8ea8423f5b28.mp4\" type=\"video/mp4\"\u003eTHPS1-5-SecretTunnelEntrance.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"sucky-room-gap\"\u003eSucky Room Gap \u003ca href=\"#sucky-room-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/352402c1-943b-4588-9001-e79a8e25f45e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-SuckyRoomGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/352402c1-943b-4588-9001-e79a8e25f45e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/352402c1-943b-4588-9001-e79a8e25f45e.mp4\" type=\"video/mp4\"\u003eTHPS1-5-SuckyRoomGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"t-2-t-gap\"\u003eT 2 T Gap \u003ca href=\"#t-2-t-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3ce8d7d9-93ea-4b9b-b25b-9b0436b4c664.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-T2TGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3ce8d7d9-93ea-4b9b-b25b-9b0436b4c664.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3ce8d7d9-93ea-4b9b-b25b-9b0436b4c664.mp4\" type=\"video/mp4\"\u003eTHPS1-5-T2TGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"transfer\"\u003eTransfer \u003ca href=\"#transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c58bb5c0-bd71-4e0a-9cf4-35ee09be7fef.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-Transfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c58bb5c0-bd71-4e0a-9cf4-35ee09be7fef.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c58bb5c0-bd71-4e0a-9cf4-35ee09be7fef.mp4\" type=\"video/mp4\"\u003eTHPS1-5-Transfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"truck-gap\"\u003eTruck Gap \u003ca href=\"#truck-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/75f35652-a4d5-45bf-a5a6-3f9c7d60556e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-TruckGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/75f35652-a4d5-45bf-a5a6-3f9c7d60556e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/75f35652-a4d5-45bf-a5a6-3f9c7d60556e.mp4\" type=\"video/mp4\"\u003eTHPS1-5-TruckGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"tunnel-gap\"\u003eTunnel Gap \u003ca href=\"#tunnel-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e687f094-8b2e-4bd6-b393-bf856b8c6e82.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-TunnelGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e687f094-8b2e-4bd6-b393-bf856b8c6e82.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e687f094-8b2e-4bd6-b393-bf856b8c6e82.mp4\" type=\"video/mp4\"\u003eTHPS1-5-TunnelGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"wimpy-gap\"\u003eWimpy Gap \u003ca href=\"#wimpy-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9b6b2e48-51b2-415a-8058-d9f9f325535f.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-WimpyGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/9b6b2e48-51b2-415a-8058-d9f9f325535f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/9b6b2e48-51b2-415a-8058-d9f9f325535f.mp4\" type=\"video/mp4\"\u003eTHPS1-5-WimpyGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"mechanic-gap\"\u003eMechanic Gap \u003ca href=\"#mechanic-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8a35d3a0-0566-4d4e-a641-7bc1cd950b99.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-MechanicGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/8a35d3a0-0566-4d4e-a641-7bc1cd950b99.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/8a35d3a0-0566-4d4e-a641-7bc1cd950b99.mp4\" type=\"video/mp4\"\u003eTHPS1-5-MechanicGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"box-office-gap\"\u003eBox Office Gap \u003ca href=\"#box-office-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9b8a3021-8cb7-42b6-b073-f5512bfa3f5f.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-BoxOfficeGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/9b8a3021-8cb7-42b6-b073-f5512bfa3f5f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/9b8a3021-8cb7-42b6-b073-f5512bfa3f5f.mp4\" type=\"video/mp4\"\u003eTHPS1-5-BoxOfficeGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"skyway-gap\"\u003eSkyway Gap \u003ca href=\"#skyway-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/af7ec993-5409-401b-9c91-5265530dab47.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-SkywayGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/af7ec993-5409-401b-9c91-5265530dab47.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/af7ec993-5409-401b-9c91-5265530dab47.mp4\" type=\"video/mp4\"\u003eTHPS1-5-SkywayGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"super-skyway-gap\"\u003eSuper Skyway Gap \u003ca href=\"#super-skyway-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d3e05a69-8295-46b6-ae99-a7dca9021306.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-5-SuperSkywayGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d3e05a69-8295-46b6-ae99-a7dca9021306.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d3e05a69-8295-46b6-ae99-a7dca9021306.mp4\" type=\"video/mp4\"\u003eTHPS1-5-SuperSkywayGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n\n![screenshot-2025-02-28T00-44-32-696Z.png](https://dropper.waylonwalker.com/api/file/74936acc-5cfb-430a-b31b-d8f9888b437d.png)\n![screenshot-2025-02-28T00-45-05-468Z.png](https://dropper.waylonwalker.com/api/file/bb603b2c-e1be-4d8f-80e3-47c2715a2643.png)\n\nPreviously \u003ca href=\"/thps-1-skate-park-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Skate Park Gaps\" data-description=\"Previously thps-1-mall-gaps Next thps-1-downtown-gaps\" data-date=\"2025-03-08\"\u003eTHPS 1 Skate Park Gaps\u003c/a\u003e\n\n## Big Ass\n\n![THPS1-5-BigAss.mp4](https://dropper.waylonwalker.com/api/file/c9020f68-1398-468b-8235-235be767f89d.mp4)\n\n## Billboard Grind\n\n![THPS1-5-BillboardGrind.mp4](https://dropper.waylonwalker.com/api/file/34593c9a-ca7d-435f-b1df-cd23081d13e9.mp4)\n\n## BS Gap\n\n![THPS1-5-BSGap.mp4](https://dropper.waylonwalker.com/api/file/5521048b-9929-4153-994c-5abc7e88fc2a.mp4)\n\n## BS Grind\n\n![THPS1-5-BSGrind.mp4](https://dropper.waylonwalker.com/api/file/737d36ef-323c-4bf2-8294-cd962d0c5f47.mp4)\n\n## Burly Deck Gap\n\n![THPS1-5-BurlyDeckGap.mp4](https://dropper.waylonwalker.com/api/file/edcb7767-f6d9-4ce0-b6f3-07d5ceb82bbc.mp4)\n\n## Car Ollie\n\n![THPS1-5-CarOllie.mp4](https://dropper.waylonwalker.com/api/file/e9a91ddf-318c-4e10-9268-b41c607ff8e8.mp4)\n\n![THPS1-5-CarPlant.mp4](https://dropper.waylonwalker.com/api/file/5b813fb2-8b22-4129-a01e-3a1f9b7fcb3e.mp4)\n\n## Cheesy Deck Gap\n\n![THPS1-5-CheesyDeckGap.mp4](https://dropper.waylonwalker.com/api/file/c17b7db0-77b4-4769-af36-640070325846.mp4)\n\n## Death Grind\n\n![THPS1-5-DeathGrind.mp4](https://dropper.waylonwalker.com/api/file/af8da429-0ac1-469e-97fd-37971ad0ba79.mp4)\n\n## Deck Gap\n\n![THPS1-5-DeckGap.mp4](https://dropper.waylonwalker.com/api/file/95ec787a-6520-4868-ae8c-b2953a2a1551.mp4)\n\n## Dirty Rail\n\n![THPS1-5-DirtyRail.mp4](https://dropper.waylonwalker.com/api/file/16028649-1e78-4a5a-a88b-f143eac6b538.mp4)\n\n## Glass Gap\n\n![THPS1-5-GlassGap.mp4](https://dropper.waylonwalker.com/api/file/4138f100-9ec0-4e38-b328-20d3a2fd41b7.mp4)\n\n## Kicker Gap\n\n![THPS1-5-KickerGap.mp4](https://dropper.waylonwalker.com/api/file/4b0a0af2-24bd-4011-8c2c-536ef63fd63c.mp4)\n\n## Kicker 2 Edge\n\n![THPS1-5-Kicker2Edge.mp4](https://dropper.waylonwalker.com/api/file/16e84f08-73ba-4cc3-ba51-90dceb35e91d.mp4)\n\n## Kicker 2 Street\n\n![THPS1-5-Kicker2Street.mp4](https://dropper.waylonwalker.com/api/file/a3c73018-c602-4bd0-9c96-7e81b128889b.mp4)\n\n## Rail 2 Rail\n\n![THPS1-5-Rail2Rail.mp4](https://dropper.waylonwalker.com/api/file/b07d1500-0e3a-4c0f-b98d-27d6a75ca305.mp4)\n\n## Roof 2 Roof\n\n![THPS1-5-Roof2Roof.mp4](https://dropper.waylonwalker.com/api/file/fdcd25cd-a73a-49c4-bf06-e2058eb7cecb.mp4)\n\n## Secret Tunnel Entrance\n\n![THPS1-5-SecretTunnelEntrance.mp4](https://dropper.waylonwalker.com/api/file/06f4bcef-ec5a-4480-80e8-8ea8423f5b28.mp4)\n\n## Sucky Room Gap\n\n![THPS1-5-SuckyRoomGap.mp4](https://dropper.waylonwalker.com/api/file/352402c1-943b-4588-9001-e79a8e25f45e.mp4)\n\n## T 2 T Gap\n\n![THPS1-5-T2TGap.mp4](https://dropper.waylonwalker.com/api/file/3ce8d7d9-93ea-4b9b-b25b-9b0436b4c664.mp4)\n\n## Transfer\n\n![THPS1-5-Transfer.mp4](https://dropper.waylonwalker.com/api/file/c58bb5c0-bd71-4e0a-9cf4-35ee09be7fef.mp4)\n\n## Truck Gap\n\n![THPS1-5-TruckGap.mp4](https://dropper.waylonwalker.com/api/file/75f35652-a4d5-45bf-a5a6-3f9c7d60556e.mp4)\n\n## Tunnel Gap\n\n![THPS1-5-TunnelGap.mp4](https://dropper.waylonwalker.com/api/file/e687f094-8b2e-4bd6-b393-bf856b8c6e82.mp4)\n\n## Wimpy Gap\n\n![THPS1-5-WimpyGap.mp4](https://dropper.waylonwalker.com/api/file/9b6b2e48-51b2-415a-8058-d9f9f325535f.mp4)\n\n## Mechanic Gap\n\n![THPS1-5-MechanicGap.mp4](https://dropper.waylonwalker.com/api/file/8a35d3a0-0566-4d4e-a641-7bc1cd950b99.mp4)\n\n## Box Office Gap\n\n![THPS1-5-BoxOfficeGap.mp4](https://dropper.waylonwalker.com/api/file/9b8a3021-8cb7-42b6-b073-f5512bfa3f5f.mp4)\n\n## Skyway Gap\n\n![THPS1-5-SkywayGap.mp4](https://dropper.waylonwalker.com/api/file/af7ec993-5409-401b-9c91-5265530dab47.mp4)\n\n## Super Skyway Gap\n\n![THPS1-5-SuperSkywayGap.mp4](https://dropper.waylonwalker.com/api/file/d3e05a69-8295-46b6-ae99-a7dca9021306.mp4)\n",
      "summary": "Previously thps-1-skate-park-gaps",
      "date_published": "2025-03-15T18:46:01Z",
      "date_modified": "2025-03-15T18:46:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thps-gaps"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-582/",
      "url": "https://waylonwalker.com/thought-582/",
      "title": "💭 The State of Secrets Sprawl 2025",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.gitguardian.com/the-state-of-secrets-sprawl-2025/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://storage.ghost.io/c/42/5d/425d266f-cf99-406e-9436-597a19bed011/content/images/2025/03/Stateof25@2x.png\" alt=\"The State of Secrets Sprawl 2025 — GitGuardian\u0026#39;s 2025 report reveals 70% of leaked secrets remain active two years later. Discover the alarming state of secrets sprawl \u0026amp; protect your organization.\" loading=\"lazy\"/ data-glightbox=\"description: The State of Secrets Sprawl 2025 — GitGuardian\u0026#39;s 2025 report reveals 70% of leaked secrets remain active two years later. Discover the alarming state of secrets sprawl \u0026amp; protect your organization.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe State of Secrets Sprawl 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eGitGuardian\u0026#39;s 2025 report reveals 70% of leaked secrets remain active two years later. Discover the alarming state of secrets sprawl \u0026amp; protect your organization.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitGuardian Blog - Take Control of Your Secrets Security · blog.gitguardian.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGood report, make notes later\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://blog.gitguardian.com/the-state-of-secrets-sprawl-2025/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://storage.ghost.io/c/42/5d/425d266f-cf99-406e-9436-597a19bed011/content/images/2025/03/Stateof25@2x.png\" alt=\"The State of Secrets Sprawl 2025 — GitGuardian\u0026#39;s 2025 report reveals 70% of leaked secrets remain active two years later. Discover the alarming state of secrets sprawl \u0026amp; protect your organization.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe State of Secrets Sprawl 2025\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eGitGuardian\u0026#39;s 2025 report reveals 70% of leaked secrets remain active two years later. Discover the alarming state of secrets sprawl \u0026amp; protect your organization.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitGuardian Blog - Take Control of Your Secrets Security \u0026middot; blog.gitguardian.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGood report, make notes later\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://blog.gitguardian.com/the-state-of-secrets-sprawl-2025/",
      "date_published": "2025-03-14T18:16:07Z",
      "date_modified": "2025-03-14T18:16:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-581/",
      "url": "https://waylonwalker.com/thought-581/",
      "title": "💭 Mill-Max Hotswap Sockets  – Keebio",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://keeb.io/products/mill-max-hotswap-sockets?variant=32377167511646\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://keeb.io/cdn/shop/products/image_88f7613a-6692-4f4d-bc3c-00220e175516.jpg?v=1612558347\" alt=\"Mill-Max Hotswap Sockets — Mill-Max sockets for adding hotswap support to regular PCBs. Sold in packs of 60 (good for 30 switches). Info about the different types 7305-0: Gold-plated sockets (7305-0-15-15-47-27-10-0) Shorter leg that can be more difficult to solder, but has a shorter lip above the PCB that\u0026#39;s more flush 0305-2: Tin-plated sockets\" loading=\"lazy\"/ data-glightbox=\"description: Mill-Max Hotswap Sockets — Mill-Max sockets for adding hotswap support to regular PCBs. Sold in packs of 60 (good for 30 switches). Info about the different types 7305-0: Gold-plated sockets (7305-0-15-15-47-27-10-0) Shorter leg that can be more difficult to solder, but has a shorter lip above the PCB that\u0026#39;s more flush 0305-2: Tin-plated sockets\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMill-Max Hotswap Sockets\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMill-Max sockets for adding hotswap support to regular PCBs. Sold in packs of 60 (good for 30 switches). Info about the different types 7305-0: Gold-plated sockets (7305-0-15-15-47-27-10-0) Shorter...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eKeebio · keeb.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003elooking into trying these Mill-Max pins on a handwired 3d printed build to see if I can get away from specialty hot swap sockets.  Damn they aren’t exactly cheap, I really want the nice short ones but they start at $20 per 60ct and you need two per key, that adds up quick.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://keeb.io/products/mill-max-hotswap-sockets?variant=32377167511646\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://keeb.io/cdn/shop/products/image_88f7613a-6692-4f4d-bc3c-00220e175516.jpg?v=1612558347\" alt=\"Mill-Max Hotswap Sockets — Mill-Max sockets for adding hotswap support to regular PCBs. Sold in packs of 60 (good for 30 switches). Info about the different types 7305-0: Gold-plated sockets (7305-0-15-15-47-27-10-0) Shorter leg that can be more difficult to solder, but has a shorter lip above the PCB that\u0026#39;s more flush 0305-2: Tin-plated sockets\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMill-Max Hotswap Sockets\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMill-Max sockets for adding hotswap support to regular PCBs. Sold in packs of 60 (good for 30 switches). Info about the different types 7305-0: Gold-plated sockets (7305-0-15-15-47-27-10-0) Shorter...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eKeebio \u0026middot; keeb.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nlooking into trying these Mill-Max pins on a handwired 3d printed build to see if I can get away from specialty hot swap sockets.  Damn they aren't exactly cheap, I really want the nice short ones but they start at $20 per 60ct and you need two per key, that adds up quick.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://keeb.io/products/mill-max-hotswap-sockets?variant=32377167511646",
      "date_published": "2025-03-14T01:02:15Z",
      "date_modified": "2025-03-14T01:02:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keyboard",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-580/",
      "url": "https://waylonwalker.com/thought-580/",
      "title": "💭 r.jina.ai",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://r.jina.ai/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/r.jina.ai.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/r.jina.ai.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003er.jina.ai\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ejina reader is a pretty sweet tool to convert a site to ai compatible text.  There are other web to markdown types of tools, but the convenience of just adding r.jina.ai to the front of any page makes it so easy to grab for one page of docs.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://r.jina.ai/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003er.jina.ai\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\njina reader is a pretty sweet tool to convert a site to ai compatible text.  There are other web to markdown types of tools, but the convenience of just adding r.jina.ai to the front of any page makes it so easy to grab for one page of docs.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://r.jina.ai/",
      "date_published": "2025-03-13T17:12:44Z",
      "date_modified": "2025-03-13T17:12:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-579/",
      "url": "https://waylonwalker.com/thought-579/",
      "title": "💭 Why did Framework build a desktop? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"zI6ZQls54Ms\" title=\"Why did Framework build a desktop?\" playlabel=\"Play: Why did Framework build a desktop?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ethe racked up 4 framework mainboards sound wild.  connected with usb4 and 5gig ethernet.  they said they can run big models quantized down from 600Gb to within the 512GB limit they have.  This seems wild to bring this level of capability to such a low price point.  It will be really cool to start to see demos come out.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"zI6ZQls54Ms\" title=\"Why did Framework build a desktop?\" playlabel=\"Play: Why did Framework build a desktop?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nthe racked up 4 framework mainboards sound wild.  connected with usb4 and 5gig ethernet.  they said they can run big models quantized down from 600Gb to within the 512GB limit they have.  This seems wild to bring this level of capability to such a low price point.  It will be really cool to start to see demos come out.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=zI6ZQls54Ms",
      "date_published": "2025-03-12T13:01:44Z",
      "date_modified": "2025-03-12T13:01:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/y2z-monolith/",
      "url": "https://waylonwalker.com/y2z-monolith/",
      "title": "⭐ Y2Z monolith",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/Y2Z/monolith\" 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\"\u003emonolith\u003c/a\u003e by \u003ca href=\"https://github.com/Y2Z\" 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\"\u003eY2Z\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003e⬛️ CLI tool and library for saving complete web pages as a single \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003eHTML\u003c/a\u003e file\u003c/p\u003e\n",
      "content_text": "\nJust starred [monolith](https://github.com/Y2Z/monolith) by [Y2Z](https://github.com/Y2Z). It's an exciting project with a lot to offer.\n\n⬛️ CLI tool and library for saving complete web pages as a single HTML file\n",
      "summary": "Just starred monolith by Y2Z. It's an exciting project with a lot to offer.",
      "date_published": "2025-03-11T14:18:31Z",
      "date_modified": "2025-03-11T14:18:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thps-1-skate-park-gaps/",
      "url": "https://waylonwalker.com/thps-1-skate-park-gaps/",
      "title": "THPS 1 Skate Park Gaps",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/75b658de-1c88-4147-b06b-5c0cc0bc8b80.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/75b658de-1c88-4147-b06b-5c0cc0bc8b80.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003ePreviously \u003ca href=\"/thps-1-mall-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Mall Gaps\" data-description=\"This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren\u0026#39;t as many gaps in it as I thought...\" data-date=\"2025-03-01\" data-preview=\"This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren\u0026#39;t as many gaps in it as I thought...\"\u003eTHPS 1 Mall Gaps\u003c/a\u003e\nNext \u003ca href=\"/thps-1-downtown-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Downtown Gaps\" data-description=\"Previously thps-1-skate-park-gaps\" data-date=\"2025-03-15\" data-preview=\"Previously thps-1-skate-park-gaps\"\u003eTHPS 1 Downtown Gaps\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"acid-drop\"\u003eAcid Drop \u003ca href=\"#acid-drop\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/284daa63-abe2-4693-a533-fa4ae0478869.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-AcidDrop.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/284daa63-abe2-4693-a533-fa4ae0478869.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/284daa63-abe2-4693-a533-fa4ae0478869.mp4\" type=\"video/mp4\"\u003eTHPS1-4-AcidDrop.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"across-the-park\"\u003eAcross The Park \u003ca href=\"#across-the-park\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/01b21044-0bf8-4b06-9db1-a002c0519df6.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-AcrossThePark.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/01b21044-0bf8-4b06-9db1-a002c0519df6.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/01b21044-0bf8-4b06-9db1-a002c0519df6.mp4\" type=\"video/mp4\"\u003eTHPS1-4-AcrossThePark.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"around-the-bend\"\u003eAround The Bend \u003ca href=\"#around-the-bend\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e9e42b76-de54-4828-9aaa-39f125ad39e5.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-AroundTheBend.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e9e42b76-de54-4828-9aaa-39f125ad39e5.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e9e42b76-de54-4828-9aaa-39f125ad39e5.mp4\" type=\"video/mp4\"\u003eTHPS1-4-AroundTheBend.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"hp-transfer\"\u003eHP Transfer \u003ca href=\"#hp-transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c39a29f4-3b18-4983-a1b0-d27a284a7f63.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-HPTransfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c39a29f4-3b18-4983-a1b0-d27a284a7f63.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c39a29f4-3b18-4983-a1b0-d27a284a7f63.mp4\" type=\"video/mp4\"\u003eTHPS1-4-HPTransfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"light-grind\"\u003eLight Grind \u003ca href=\"#light-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b3e5b0bd-8f71-41b2-9fe3-5b45cde01ba4.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-LightGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b3e5b0bd-8f71-41b2-9fe3-5b45cde01ba4.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b3e5b0bd-8f71-41b2-9fe3-5b45cde01ba4.mp4\" type=\"video/mp4\"\u003eTHPS1-4-LightGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-the-box\"\u003eOver The Box \u003ca href=\"#over-the-box\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/96afe8f1-bffb-4a69-af64-17cafeb9ad3c.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-OverTheBox.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/96afe8f1-bffb-4a69-af64-17cafeb9ad3c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/96afe8f1-bffb-4a69-af64-17cafeb9ad3c.mp4\" type=\"video/mp4\"\u003eTHPS1-4-OverTheBox.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-the-pipe\"\u003eOver The Pipe \u003ca href=\"#over-the-pipe\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/90c96ad4-be68-4ab0-a907-0cc45d0aa853.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-OverThePipe.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/90c96ad4-be68-4ab0-a907-0cc45d0aa853.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/90c96ad4-be68-4ab0-a907-0cc45d0aa853.mp4\" type=\"video/mp4\"\u003eTHPS1-4-OverThePipe.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-the-rafters\"\u003eOver the Rafters \u003ca href=\"#over-the-rafters\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/278ca420-8fe2-4f37-bdf9-14eae25fa07d.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-OverTheRafters.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/278ca420-8fe2-4f37-bdf9-14eae25fa07d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/278ca420-8fe2-4f37-bdf9-14eae25fa07d.mp4\" type=\"video/mp4\"\u003eTHPS1-4-OverTheRafters.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"pool-2-walkway\"\u003ePool 2 Walkway \u003ca href=\"#pool-2-walkway\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/78b6ecbc-c9d0-440b-809c-ae72a54af3ee.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-Pool2Walkway.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/78b6ecbc-c9d0-440b-809c-ae72a54af3ee.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/78b6ecbc-c9d0-440b-809c-ae72a54af3ee.mp4\" type=\"video/mp4\"\u003eTHPS1-4-Pool2Walkway.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"pool-hip\"\u003ePool Hip \u003ca href=\"#pool-hip\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4c6cfaa7-c63a-41b8-8ed8-2e8cefe4c96a.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-PoolHip.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4c6cfaa7-c63a-41b8-8ed8-2e8cefe4c96a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4c6cfaa7-c63a-41b8-8ed8-2e8cefe4c96a.mp4\" type=\"video/mp4\"\u003eTHPS1-4-PoolHip.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"pool-rail-trans\"\u003ePool Rail Trans \u003ca href=\"#pool-rail-trans\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6a72262c-6a31-4408-91c5-15e95d7fe4a7.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-PoolRailTrans.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/6a72262c-6a31-4408-91c5-15e95d7fe4a7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/6a72262c-6a31-4408-91c5-15e95d7fe4a7.mp4\" type=\"video/mp4\"\u003eTHPS1-4-PoolRailTrans.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"rafter-rail\"\u003eRafter Rail \u003ca href=\"#rafter-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/400830fc-5f7d-4f98-8784-1cb88dfa9c1b.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-RafterRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/400830fc-5f7d-4f98-8784-1cb88dfa9c1b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/400830fc-5f7d-4f98-8784-1cb88dfa9c1b.mp4\" type=\"video/mp4\"\u003eTHPS1-4-RafterRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"transfer\"\u003eTransfer \u003ca href=\"#transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/86bc0bf7-f6ae-4b0c-aed7-fc53845fcafb.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-Transfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/86bc0bf7-f6ae-4b0c-aed7-fc53845fcafb.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/86bc0bf7-f6ae-4b0c-aed7-fc53845fcafb.mp4\" type=\"video/mp4\"\u003eTHPS1-4-Transfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"walkway-rail-trans\"\u003eWalkway Rail Trans \u003ca href=\"#walkway-rail-trans\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e5af0838-371d-45c7-b0f2-2589e6c5e0d9.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-WalkwayRailTrans.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e5af0838-371d-45c7-b0f2-2589e6c5e0d9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e5af0838-371d-45c7-b0f2-2589e6c5e0d9.mp4\" type=\"video/mp4\"\u003eTHPS1-4-WalkwayRailTrans.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"wall-gap\"\u003eWall Gap \u003ca href=\"#wall-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/70add6e4-c5d9-426b-8894-823922a714c5.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-WallGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/70add6e4-c5d9-426b-8894-823922a714c5.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/70add6e4-c5d9-426b-8894-823922a714c5.mp4\" type=\"video/mp4\"\u003eTHPS1-4-WallGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"wall-gap-jr\"\u003eWall Gap Jr \u003ca href=\"#wall-gap-jr\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/58caf655-2b2b-4683-9be7-6fc2c29feb5f.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-WallGapJr.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/58caf655-2b2b-4683-9be7-6fc2c29feb5f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/58caf655-2b2b-4683-9be7-6fc2c29feb5f.mp4\" type=\"video/mp4\"\u003eTHPS1-4-WallGapJr.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"whoop-gap\"\u003eWhoop Gap \u003ca href=\"#whoop-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/461c9b3c-891f-4c83-a158-932e5aa9f0ae.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-4-WhoopGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/461c9b3c-891f-4c83-a158-932e5aa9f0ae.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/461c9b3c-891f-4c83-a158-932e5aa9f0ae.mp4\" type=\"video/mp4\"\u003eTHPS1-4-WhoopGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n\n![image](https://dropper.waylonwalker.com/api/file/75b658de-1c88-4147-b06b-5c0cc0bc8b80.webp)\n\nPreviously \u003ca href=\"/thps-1-mall-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Mall Gaps\" data-description=\"This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren\u0026#39;t as many gaps in it as I thought...\" data-date=\"2025-03-01\"\u003eTHPS 1 Mall Gaps\u003c/a\u003e\nNext \u003ca href=\"/thps-1-downtown-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Downtown Gaps\" data-description=\"Previously thps-1-skate-park-gaps\" data-date=\"2025-03-15\"\u003eTHPS 1 Downtown Gaps\u003c/a\u003e\n\n## Acid Drop\n\n![THPS1-4-AcidDrop.mp4](https://dropper.waylonwalker.com/api/file/284daa63-abe2-4693-a533-fa4ae0478869.mp4)\n\n## Across The Park\n\n![THPS1-4-AcrossThePark.mp4](https://dropper.waylonwalker.com/api/file/01b21044-0bf8-4b06-9db1-a002c0519df6.mp4)\n\n## Around The Bend\n\n![THPS1-4-AroundTheBend.mp4](https://dropper.waylonwalker.com/api/file/e9e42b76-de54-4828-9aaa-39f125ad39e5.mp4)\n\n## HP Transfer\n\n![THPS1-4-HPTransfer.mp4](https://dropper.waylonwalker.com/api/file/c39a29f4-3b18-4983-a1b0-d27a284a7f63.mp4)\n\n## Light Grind\n\n![THPS1-4-LightGrind.mp4](https://dropper.waylonwalker.com/api/file/b3e5b0bd-8f71-41b2-9fe3-5b45cde01ba4.mp4)\n\n## Over The Box\n\n![THPS1-4-OverTheBox.mp4](https://dropper.waylonwalker.com/api/file/96afe8f1-bffb-4a69-af64-17cafeb9ad3c.mp4)\n\n## Over The Pipe\n\n![THPS1-4-OverThePipe.mp4](https://dropper.waylonwalker.com/api/file/90c96ad4-be68-4ab0-a907-0cc45d0aa853.mp4)\n\n## Over the Rafters\n\n![THPS1-4-OverTheRafters.mp4](https://dropper.waylonwalker.com/api/file/278ca420-8fe2-4f37-bdf9-14eae25fa07d.mp4)\n\n## Pool 2 Walkway\n\n![THPS1-4-Pool2Walkway.mp4](https://dropper.waylonwalker.com/api/file/78b6ecbc-c9d0-440b-809c-ae72a54af3ee.mp4)\n\n## Pool Hip\n\n![THPS1-4-PoolHip.mp4](https://dropper.waylonwalker.com/api/file/4c6cfaa7-c63a-41b8-8ed8-2e8cefe4c96a.mp4)\n\n## Pool Rail Trans\n\n![THPS1-4-PoolRailTrans.mp4](https://dropper.waylonwalker.com/api/file/6a72262c-6a31-4408-91c5-15e95d7fe4a7.mp4)\n\n## Rafter Rail\n\n![THPS1-4-RafterRail.mp4](https://dropper.waylonwalker.com/api/file/400830fc-5f7d-4f98-8784-1cb88dfa9c1b.mp4)\n\n## Transfer\n\n![THPS1-4-Transfer.mp4](https://dropper.waylonwalker.com/api/file/86bc0bf7-f6ae-4b0c-aed7-fc53845fcafb.mp4)\n\n## Walkway Rail Trans\n\n![THPS1-4-WalkwayRailTrans.mp4](https://dropper.waylonwalker.com/api/file/e5af0838-371d-45c7-b0f2-2589e6c5e0d9.mp4)\n\n## Wall Gap\n\n![THPS1-4-WallGap.mp4](https://dropper.waylonwalker.com/api/file/70add6e4-c5d9-426b-8894-823922a714c5.mp4)\n\n## Wall Gap Jr\n\n![THPS1-4-WallGapJr.mp4](https://dropper.waylonwalker.com/api/file/58caf655-2b2b-4683-9be7-6fc2c29feb5f.mp4)\n\n## Whoop Gap\n\n![THPS1-4-WhoopGap.mp4](https://dropper.waylonwalker.com/api/file/461c9b3c-891f-4c83-a158-932e5aa9f0ae.mp4)\n",
      "summary": "Previously thps-1-mall-gaps Next thps-1-downtown-gaps",
      "date_published": "2025-03-08T14:36:23Z",
      "date_modified": "2025-03-08T14:36:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thps-gaps"
      ]
    },
    {
      "id": "https://waylonwalker.com/trailmakers-pioneers/",
      "url": "https://waylonwalker.com/trailmakers-pioneers/",
      "title": "Trailmakers Pioneers",
      "content_html": "\u003cp\u003eTrailmakers 2.0 Pioneers was released today as an update to trailmakers.  It’s\na brand new campaign mode that requires you to mine resources to get materials\nto craft your vehicles rather than salvage parts like you so in the Stranded\nCampaign.  There also seems to be a more linear play through of the story with\nthe frogitts, unlike stranded where it let you do anything completely open\nworld, as long as you had the equipment to go there.\u003c/p\u003e\n\u003ch2 id=\"four-frogitts\"\u003eFour Frogitts \u003ca href=\"#four-frogitts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOut of the gate Wyatt came in with four frogitts to rescue, I don’t know how he\nfound them all, I’ve only been able to find the first one that the master gives\nyou to bring home as a tutorial.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0e659c05-1c12-4524-aa54-ef52ba680865.mp4\" class=\"glightbox-link\" aria-label=\"four-frogitts.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/0e659c05-1c12-4524-aa54-ef52ba680865.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/0e659c05-1c12-4524-aa54-ef52ba680865.mp4\" type=\"video/mp4\"\u003efour-frogitts.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"first-boss\"\u003eFirst Boss \u003ca href=\"#first-boss\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter Wyatt left for bed I played a little more and beat the first of what felt\nlike a boss level enemy, he had much different attacks.  I did not think I\nwould make it as I got hit hard from his first explosion attack before I\nrealized what it did.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/08252dda-b943-4859-be58-0d504fd97f11.mp4\" class=\"glightbox-link\" aria-label=\"first-boss.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/08252dda-b943-4859-be58-0d504fd97f11.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/08252dda-b943-4859-be58-0d504fd97f11.mp4\" type=\"video/mp4\"\u003efirst-boss.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eHere is where he was on the map.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d0da1d66-63b2-4d29-8047-960cadb4e0c2.jpg\" class=\"glightbox-link\" aria-label=\"20250306195831_1.jpg\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d0da1d66-63b2-4d29-8047-960cadb4e0c2.jpg\" alt=\"20250306195831_1.jpg\"/ data-glightbox=\"description: 20250306195831_1.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"first-mega-drill\"\u003eFirst Mega Drill \u003ca href=\"#first-mega-drill\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo this first mega drill was a mistake we walked right into.  Master Sapo says,\n“Hey go investigate the Drill, but be careful, you are not powerful enough for\nit.”  Little did we know that getting too close will fully start the battle.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3ccdda41-88a1-4159-9b28-0d3ddf46ccf4.mp4\" class=\"glightbox-link\" aria-label=\"mega-drill-1-1.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3ccdda41-88a1-4159-9b28-0d3ddf46ccf4.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3ccdda41-88a1-4159-9b28-0d3ddf46ccf4.mp4\" type=\"video/mp4\"\u003emega-drill-1-1.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d7fbbe02-dff6-442c-a622-6633dfe6dd36.mp4\" class=\"glightbox-link\" aria-label=\"mega-drill-1-2.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d7fbbe02-dff6-442c-a622-6633dfe6dd36.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d7fbbe02-dff6-442c-a622-6633dfe6dd36.mp4\" type=\"video/mp4\"\u003emega-drill-1-2.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7ae06e7c-2455-47e8-aae3-9593450b527c.mp4\" class=\"glightbox-link\" aria-label=\"mega-drill-1-3.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7ae06e7c-2455-47e8-aae3-9593450b527c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7ae06e7c-2455-47e8-aae3-9593450b527c.mp4\" type=\"video/mp4\"\u003emega-drill-1-3.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"leapsville-froggit-rescue\"\u003eLeapsville Froggit rescue \u003ca href=\"#leapsville-froggit-rescue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBack to leapsville we were presented with two froggit rescues.  We later found\nout that the settlement missions will repeat forever and cycle through a few\nmissions.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3b20ce74-7f22-4f9b-9b09-53074750e7f3.mp4\" class=\"glightbox-link\" aria-label=\"leapsville-froggit-rescue-1.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3b20ce74-7f22-4f9b-9b09-53074750e7f3.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3b20ce74-7f22-4f9b-9b09-53074750e7f3.mp4\" type=\"video/mp4\"\u003eleapsville-froggit-rescue-1.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/527b2fda-b1a2-49da-bfb4-4c30bcce9049.mp4\" class=\"glightbox-link\" aria-label=\"leapsville-froggit-rescue-2.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/527b2fda-b1a2-49da-bfb4-4c30bcce9049.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/527b2fda-b1a2-49da-bfb4-4c30bcce9049.mp4\" type=\"video/mp4\"\u003eleapsville-froggit-rescue-2.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAfter doing a few missions we completed leapsville.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/544b8197-303e-4b8e-9127-79ddac4dbc45.mp4\" class=\"glightbox-link\" aria-label=\"completing-leapsville.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/544b8197-303e-4b8e-9127-79ddac4dbc45.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/544b8197-303e-4b8e-9127-79ddac4dbc45.mp4\" type=\"video/mp4\"\u003ecompleting-leapsville.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"finding-sulfur\"\u003eFinding Sulfur \u003ca href=\"#finding-sulfur\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFinding sulfur in Trailmakers was a little tricky, first trying to find where\nit was, then realizing that it was hidden in this bulbous plant.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4f2be358-8a14-4033-adc4-ea941e605e0a.mp4\" class=\"glightbox-link\" aria-label=\"finding-sulfur.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4f2be358-8a14-4033-adc4-ea941e605e0a.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4f2be358-8a14-4033-adc4-ea941e605e0a.mp4\" type=\"video/mp4\"\u003efinding-sulfur.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"derogs-pond-froggit-rescue\"\u003eDerogs Pond Froggit Rescue \u003ca href=\"#derogs-pond-froggit-rescue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/69965387-7eba-4d32-83b9-cf0aa42c5495.mp4\" class=\"glightbox-link\" aria-label=\"derogs-pond-froggit-rescue-2.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/69965387-7eba-4d32-83b9-cf0aa42c5495.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/69965387-7eba-4d32-83b9-cf0aa42c5495.mp4\" type=\"video/mp4\"\u003ederogs-pond-froggit-rescue-2.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"meadows-intercity-bus-service\"\u003eMeadows Intercity Bus Service \u003ca href=\"#meadows-intercity-bus-service\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/777afbd6-7f75-4da6-aaeb-f35b1ef002d0.mp4\" class=\"glightbox-link\" aria-label=\"meadows-intercity-bus-service-2.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/777afbd6-7f75-4da6-aaeb-f35b1ef002d0.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/777afbd6-7f75-4da6-aaeb-f35b1ef002d0.mp4\" type=\"video/mp4\"\u003emeadows-intercity-bus-service-2.mp4\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/933f6ff0-e1f8-421f-9de1-e6e7fffea841.mp4\" class=\"glightbox-link\" aria-label=\"meadows-intercity-bus-service-3.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/933f6ff0-e1f8-421f-9de1-e6e7fffea841.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/933f6ff0-e1f8-421f-9de1-e6e7fffea841.mp4\" type=\"video/mp4\"\u003emeadows-intercity-bus-service-3.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"mega-drill-mudflats\"\u003eMega Drill Mudflats \u003ca href=\"#mega-drill-mudflats\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe came into this mega drill thinking we were prepared, but I was wrong.  I\nequipped shotguns thinking it would be kinda like the last one, at the last\nsecond Master Sapo tells you that you need an EMP, which we got equiped.  Once\nwe got in we realized that getting close to anything is really hard and all the\nshotguns were useless, and to top it off all the Botnak attacks make it\nimpossible to reconfigure.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a247d80a-88a5-4712-ba81-6282b704caa6.mp4\" class=\"glightbox-link\" aria-label=\"mega-drill-mudflats.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/a247d80a-88a5-4712-ba81-6282b704caa6.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/a247d80a-88a5-4712-ba81-6282b704caa6.mp4\" type=\"video/mp4\"\u003emega-drill-mudflats.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI really think the devs should make a small free zone where you don’t get\nattacked where you respawn.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"huge-trophy-truck\"\u003eHuge Trophy Truck \u003ca href=\"#huge-trophy-truck\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI like making Trophy Trucks with big suspension.  They seem like they glitch\nout more than they help, but I think they are fun, here is a huge jump I landed\nhard in mine.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/251eaf40-c87d-466e-ab5c-24417a6b01ac.mp4\" class=\"glightbox-link\" aria-label=\"huge-trophy-truck-jump.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/251eaf40-c87d-466e-ab5c-24417a6b01ac.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/251eaf40-c87d-466e-ab5c-24417a6b01ac.mp4\" type=\"video/mp4\"\u003ehuge-trophy-truck-jump.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"emperical-extractions\"\u003eEmperical Extractions \u003ca href=\"#emperical-extractions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhen pulling the scientists out of the their reserch to bring them back I did\nnot have enough boost to lift them, we needed to take a pitstop to get them up\nto the treetops.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/95efd27b-af1e-450c-b27d-3108a404e62b.mp4\" class=\"glightbox-link\" aria-label=\"emperical-extractions-adding-boost.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/95efd27b-af1e-450c-b27d-3108a404e62b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/95efd27b-af1e-450c-b27d-3108a404e62b.mp4\" type=\"video/mp4\"\u003eemperical-extractions-adding-boost.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/790ed882-b272-495c-889e-eb1cf8707e58.mp4\" class=\"glightbox-link\" aria-label=\"emperical-extractions-landing.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/790ed882-b272-495c-889e-eb1cf8707e58.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/790ed882-b272-495c-889e-eb1cf8707e58.mp4\" type=\"video/mp4\"\u003eemperical-extractions-landing.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nTrailmakers 2.0 Pioneers was released today as an update to trailmakers.  It's\na brand new campaign mode that requires you to mine resources to get materials\nto craft your vehicles rather than salvage parts like you so in the Stranded\nCampaign.  There also seems to be a more linear play through of the story with\nthe frogitts, unlike stranded where it let you do anything completely open\nworld, as long as you had the equipment to go there.\n\n## Four Frogitts\n\nOut of the gate Wyatt came in with four frogitts to rescue, I don't know how he\nfound them all, I've only been able to find the first one that the master gives\nyou to bring home as a tutorial.\n\n![four-frogitts.mp4](https://dropper.waylonwalker.com/api/file/0e659c05-1c12-4524-aa54-ef52ba680865.mp4)\n\n## First Boss\n\nAfter Wyatt left for bed I played a little more and beat the first of what felt\nlike a boss level enemy, he had much different attacks.  I did not think I\nwould make it as I got hit hard from his first explosion attack before I\nrealized what it did.\n\n![first-boss.mp4](https://dropper.waylonwalker.com/api/file/08252dda-b943-4859-be58-0d504fd97f11.mp4)\n\nHere is where he was on the map.\n\n![20250306195831_1.jpg](https://dropper.waylonwalker.com/api/file/d0da1d66-63b2-4d29-8047-960cadb4e0c2.jpg)\n\n## First Mega Drill\n\nSo this first mega drill was a mistake we walked right into.  Master Sapo says,\n\"Hey go investigate the Drill, but be careful, you are not powerful enough for\nit.\"  Little did we know that getting too close will fully start the battle.\n\n![mega-drill-1-1.mp4](https://dropper.waylonwalker.com/api/file/3ccdda41-88a1-4159-9b28-0d3ddf46ccf4.mp4)\n\n![mega-drill-1-2.mp4](https://dropper.waylonwalker.com/api/file/d7fbbe02-dff6-442c-a622-6633dfe6dd36.mp4)\n\n![mega-drill-1-3.mp4](https://dropper.waylonwalker.com/api/file/7ae06e7c-2455-47e8-aae3-9593450b527c.mp4)\n\n## Leapsville Froggit rescue\n\nBack to leapsville we were presented with two froggit rescues.  We later found\nout that the settlement missions will repeat forever and cycle through a few\nmissions.\n\n![leapsville-froggit-rescue-1.mp4](https://dropper.waylonwalker.com/api/file/3b20ce74-7f22-4f9b-9b09-53074750e7f3.mp4)\n\n![leapsville-froggit-rescue-2.mp4](https://dropper.waylonwalker.com/api/file/527b2fda-b1a2-49da-bfb4-4c30bcce9049.mp4)\n\nAfter doing a few missions we completed leapsville.\n\n![completing-leapsville.mp4](https://dropper.waylonwalker.com/api/file/544b8197-303e-4b8e-9127-79ddac4dbc45.mp4)\n\n## Finding Sulfur\n\nFinding sulfur in Trailmakers was a little tricky, first trying to find where\nit was, then realizing that it was hidden in this bulbous plant.\n\n![finding-sulfur.mp4](https://dropper.waylonwalker.com/api/file/4f2be358-8a14-4033-adc4-ea941e605e0a.mp4)\n\n## Derogs Pond Froggit Rescue\n\n![derogs-pond-froggit-rescue-2.mp4](https://dropper.waylonwalker.com/api/file/69965387-7eba-4d32-83b9-cf0aa42c5495.mp4)\n\n## Meadows Intercity Bus Service\n\n![meadows-intercity-bus-service-2.mp4](https://dropper.waylonwalker.com/api/file/777afbd6-7f75-4da6-aaeb-f35b1ef002d0.mp4)\n![meadows-intercity-bus-service-3.mp4](https://dropper.waylonwalker.com/api/file/933f6ff0-e1f8-421f-9de1-e6e7fffea841.mp4)\n\n## Mega Drill Mudflats\n\nWe came into this mega drill thinking we were prepared, but I was wrong.  I\nequipped shotguns thinking it would be kinda like the last one, at the last\nsecond Master Sapo tells you that you need an EMP, which we got equiped.  Once\nwe got in we realized that getting close to anything is really hard and all the\nshotguns were useless, and to top it off all the Botnak attacks make it\nimpossible to reconfigure.\n\n![mega-drill-mudflats.mp4](https://dropper.waylonwalker.com/api/file/a247d80a-88a5-4712-ba81-6282b704caa6.mp4)\n\n\u003e I really think the devs should make a small free zone where you don't get\n\u003e attacked where you respawn.\n\n## Huge Trophy Truck\n\nI like making Trophy Trucks with big suspension.  They seem like they glitch\nout more than they help, but I think they are fun, here is a huge jump I landed\nhard in mine.\n\n![huge-trophy-truck-jump.mp4](https://dropper.waylonwalker.com/api/file/251eaf40-c87d-466e-ab5c-24417a6b01ac.mp4)\n\n## Emperical Extractions\n\nWhen pulling the scientists out of the their reserch to bring them back I did\nnot have enough boost to lift them, we needed to take a pitstop to get them up\nto the treetops.\n\n![emperical-extractions-adding-boost.mp4](https://dropper.waylonwalker.com/api/file/95efd27b-af1e-450c-b27d-3108a404e62b.mp4)\n\n![emperical-extractions-landing.mp4](https://dropper.waylonwalker.com/api/file/790ed882-b272-495c-889e-eb1cf8707e58.mp4)\n",
      "summary": "Trailmakers 2.0 Pioneers was released today as an update to trailmakers. It's a brand new campaign mode that requires you to mine resources to get materials...",
      "date_published": "2025-03-06T20:27:37Z",
      "date_modified": "2025-03-06T20:27:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/doomlab7-homelab-compose/",
      "url": "https://waylonwalker.com/doomlab7-homelab-compose/",
      "title": "⭐ Doomlab7 homelab-compose",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/Doomlab7/homelab-compose\" 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\"\u003ehomelab-compose\u003c/a\u003e, created by \u003ca href=\"https://github.com/Doomlab7\" 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\"\u003eDoomlab7\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA repository for the applications I run via docker-compose in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [homelab-compose](https://github.com/Doomlab7/homelab-compose), created by [Doomlab7](https://github.com/Doomlab7).\n\nA repository for the applications I run via docker-compose in my homelab\n",
      "summary": "If you're into interesting projects, don't miss out on homelab-compose, created by Doomlab7.",
      "date_published": "2025-03-06T14:56:33Z",
      "date_modified": "2025-03-06T14:56:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/deepseek-ai-smallpond/",
      "url": "https://waylonwalker.com/deepseek-ai-smallpond/",
      "title": "⭐ deepseek-ai smallpond",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/deepseek-ai/smallpond\" 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\"\u003esmallpond\u003c/a\u003e by \u003ca href=\"https://github.com/deepseek-ai\" 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\"\u003edeepseek-ai\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eA lightweight data processing framework built on DuckDB and 3FS.\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [smallpond](https://github.com/deepseek-ai/smallpond) by [deepseek-ai](https://github.com/deepseek-ai), and it's truly impressive.\n\nA lightweight data processing framework built on DuckDB and 3FS.\n",
      "summary": "I recently discovered smallpond by deepseek-ai, and it's truly impressive.",
      "date_published": "2025-03-04T20:17:58Z",
      "date_modified": "2025-03-04T20:17:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-578/",
      "url": "https://waylonwalker.com/thought-578/",
      "title": "💭 PyApp",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://ofek.dev/pyapp/latest/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ofek.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ofek.dev.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePyApp\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eofek.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI think I’m getting really close to having a good workflow setup for using pyapp.  Such an amazing project to allow developers to create applications in python without passing on the hassle of python and managing installs to the user.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://ofek.dev/pyapp/latest/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePyApp\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eofek.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI think I'm getting really close to having a good workflow setup for using pyapp.  Such an amazing project to allow developers to create applications in python without passing on the hassle of python and managing installs to the user.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://ofek.dev/pyapp/latest/",
      "date_published": "2025-03-03T01:52:54Z",
      "date_modified": "2025-03-03T01:52:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/nolar-kopf/",
      "url": "https://waylonwalker.com/nolar-kopf/",
      "title": "⭐ nolar kopf",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/nolar/kopf\" 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\"\u003ekopf\u003c/a\u003e by \u003ca href=\"https://github.com/nolar\" 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\"\u003enolar\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA Python framework to write Kubernetes operators in just a few lines of code\u003c/p\u003e\n",
      "content_text": "\nThe work on [kopf](https://github.com/nolar/kopf) by [nolar](https://github.com/nolar).\n\nA Python framework to write Kubernetes operators in just a few lines of code\n",
      "summary": "The work on kopf by nolar.",
      "date_published": "2025-03-02T20:32:30Z",
      "date_modified": "2025-03-02T20:32:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-577/",
      "url": "https://waylonwalker.com/thought-577/",
      "title": "💭 CSS Battle - Re-create an Image with CSS in the Fewest Charact...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"B32NKRKJ_Cc\" title=\"CSS Battle - Re-create an Image with CSS in the Fewest Characters | Experts Compete in CSS Code Golf\" playlabel=\"Play: CSS Battle - Re-create an Image with CSS in the Fewest Characters | Experts Compete in CSS Code Golf\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eWatching Wes fiddle through this with what a sane person would write in a normal day application and not applying the tricks for this kind of battle is how I feel when trying to do leetcode.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"B32NKRKJ_Cc\" title=\"CSS Battle - Re-create an Image with CSS in the Fewest Characters | Experts Compete in CSS Code Golf\" playlabel=\"Play: CSS Battle - Re-create an Image with CSS in the Fewest Characters | Experts Compete in CSS Code Golf\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nWatching Wes fiddle through this with what a sane person would write in a normal day application and not applying the tricks for this kind of battle is how I feel when trying to do leetcode.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=B32NKRKJ_Cc",
      "date_published": "2025-03-01T16:22:07Z",
      "date_modified": "2025-03-01T16:22:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thps-1-school-gaps/",
      "url": "https://waylonwalker.com/thps-1-school-gaps/",
      "title": "THPS 1 School Gaps",
      "content_html": "\u003cp\u003eOn the road to \u003cstrong\u003eGap Master\u003c/strong\u003e achievement I got all School Gaps in THPS1.\nThis is a super fun level, I’ll have to admit that I had to look up at least a\nquarter of them, and could not find them myself, mostly due to the naming, all\nof the rail tricks were actually ledges and I was looking for big rails.  None\nof the warehouse gaps were manuals so I had no idea that the downhill and\naccross the gym would be manual tricks.\u003c/p\u003e\n\u003cp\u003ePreviously \u003ca href=\"/thps-1-warehouse-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Warehouse Gaps\" data-description=\"On the road to ** achievement I got all Warehouse Gaps in THPS1. This is this classic warehouse level that everyone thinks of when THPS is mentioned. Such a...\" data-date=\"2025-02-22\" data-preview=\"On the road to ** achievement I got all Warehouse Gaps in THPS1. This is this classic warehouse level that everyone thinks of when THPS is mentioned. Such a...\"\u003eTHPS 1 Warehouse Gaps\u003c/a\u003e\nnext \u003ca href=\"/thps-1-mall-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Mall Gaps\" data-description=\"This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren\u0026#39;t as many gaps in it as I thought...\" data-date=\"2025-03-01\" data-preview=\"This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren\u0026#39;t as many gaps in it as I thought...\"\u003eTHPS 1 Mall Gaps\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0e56dc1e-27b6-4695-b4de-b8bc298285d7.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-20T16-38-32-148Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0e56dc1e-27b6-4695-b4de-b8bc298285d7.png\" alt=\"screenshot-2025-02-20T16-38-32-148Z.png\"/ data-glightbox=\"description: screenshot-2025-02-20T16-38-32-148Z.png\"\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/71768034-e93c-4c48-bc0c-3d0b930dc327.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-20T16-39-53-452Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/71768034-e93c-4c48-bc0c-3d0b930dc327.png\" alt=\"screenshot-2025-02-20T16-39-53-452Z.png\"/ data-glightbox=\"description: screenshot-2025-02-20T16-39-53-452Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"ditchin-class\"\u003eDitchin Class \u003ca href=\"#ditchin-class\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/cea84efd-5860-4ff4-ac17-6c2a9de4321e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-DitchinClass.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/cea84efd-5860-4ff4-ac17-6c2a9de4321e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/cea84efd-5860-4ff4-ac17-6c2a9de4321e.mp4\" type=\"video/mp4\"\u003eTHPS1-2-DitchinClass.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"dumpster-rail-gap\"\u003eDumpster Rail Gap \u003ca href=\"#dumpster-rail-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/40139234-0b55-498a-8c01-c9e5ddcdc9a7.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-DumpsterRailGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/40139234-0b55-498a-8c01-c9e5ddcdc9a7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/40139234-0b55-498a-8c01-c9e5ddcdc9a7.mp4\" type=\"video/mp4\"\u003eTHPS1-2-DumpsterRailGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"funbox-table-transfer\"\u003eFunbox Table Transfer \u003ca href=\"#funbox-table-transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fedfcae4-82f1-4332-b768-3008427b4601.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-FunBoxToTableTransfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/fedfcae4-82f1-4332-b768-3008427b4601.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/fedfcae4-82f1-4332-b768-3008427b4601.mp4\" type=\"video/mp4\"\u003eTHPS1-2-FunBoxToTableTransfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"garbage-ollie\"\u003eGarbage Ollie \u003ca href=\"#garbage-ollie\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e42a47d8-fa31-46ab-92b7-7e634dcb1b21.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-GarbageOllie.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e42a47d8-fa31-46ab-92b7-7e634dcb1b21.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e42a47d8-fa31-46ab-92b7-7e634dcb1b21.mp4\" type=\"video/mp4\"\u003eTHPS1-2-GarbageOllie.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"gimme-gap\"\u003eGimme Gap \u003ca href=\"#gimme-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/afa7cce3-33af-4c8f-bb40-99f3ff68f406.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-GimmeGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/afa7cce3-33af-4c8f-bb40-99f3ff68f406.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/afa7cce3-33af-4c8f-bb40-99f3ff68f406.mp4\" type=\"video/mp4\"\u003eTHPS1-2-GimmeGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"hall-pass-gap\"\u003eHall Pass gap \u003ca href=\"#hall-pass-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e68285be-a9fd-4afb-977f-53cc0fff09e8.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-HallPassGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e68285be-a9fd-4afb-977f-53cc0fff09e8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e68285be-a9fd-4afb-977f-53cc0fff09e8.mp4\" type=\"video/mp4\"\u003eTHPS1-2-HallPassGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"all-access-gap\"\u003eAll-Access Gap \u003ca href=\"#all-access-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7ff62672-9ff2-4f2f-a47f-e5fe15174e6e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-AllAccessGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7ff62672-9ff2-4f2f-a47f-e5fe15174e6e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7ff62672-9ff2-4f2f-a47f-e5fe15174e6e.mp4\" type=\"video/mp4\"\u003eTHPS1-2-AllAccessGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"huge-rail\"\u003eHuge Rail \u003ca href=\"#huge-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0ba66287-8166-4573-875a-7ef7cac534d9.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-HugeRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/0ba66287-8166-4573-875a-7ef7cac534d9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/0ba66287-8166-4573-875a-7ef7cac534d9.mp4\" type=\"video/mp4\"\u003eTHPS1-2-HugeRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kicker-gap\"\u003eKicker Gap \u003ca href=\"#kicker-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/974c4be7-0f80-49d6-85cd-ee3fd00f042e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-KickerGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/974c4be7-0f80-49d6-85cd-ee3fd00f042e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/974c4be7-0f80-49d6-85cd-ee3fd00f042e.mp4\" type=\"video/mp4\"\u003eTHPS1-2-KickerGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"long-ass-rail\"\u003eLong Ass Rail \u003ca href=\"#long-ass-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/11e70881-e495-4988-b3fb-c7e6517394c6.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-LongAssRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/11e70881-e495-4988-b3fb-c7e6517394c6.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/11e70881-e495-4988-b3fb-c7e6517394c6.mp4\" type=\"video/mp4\"\u003eTHPS1-2-LongAssRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"mini-gap\"\u003eMini Gap \u003ca href=\"#mini-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/374f1155-96de-442d-9972-5fd728b50cc2.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-MiniGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/374f1155-96de-442d-9972-5fd728b50cc2.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/374f1155-96de-442d-9972-5fd728b50cc2.mp4\" type=\"video/mp4\"\u003eTHPS1-2-MiniGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-a-footbridge\"\u003eOver a Footbridge \u003ca href=\"#over-a-footbridge\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/1445e693-9586-45b8-855e-d90b98066454.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-OverAFootBridge.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/1445e693-9586-45b8-855e-d90b98066454.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/1445e693-9586-45b8-855e-d90b98066454.mp4\" type=\"video/mp4\"\u003eTHPS1-2-OverAFootBridge.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-the-air-condidtioner\"\u003eOver the Air Condidtioner \u003ca href=\"#over-the-air-condidtioner\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/cdae2e2c-4ea9-49c1-b7b6-40a4f4fc4bce.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-OverTheAirConditioner.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/cdae2e2c-4ea9-49c1-b7b6-40a4f4fc4bce.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/cdae2e2c-4ea9-49c1-b7b6-40a4f4fc4bce.mp4\" type=\"video/mp4\"\u003eTHPS1-2-OverTheAirConditioner.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"park-gap\"\u003ePark Gap \u003ca href=\"#park-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e525a6e7-373f-431d-839e-6a38047f2aa1.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-ParkGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e525a6e7-373f-431d-839e-6a38047f2aa1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e525a6e7-373f-431d-839e-6a38047f2aa1.mp4\" type=\"video/mp4\"\u003eTHPS1-2-ParkGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"planter-gap\"\u003ePlanter Gap \u003ca href=\"#planter-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f10f0ca2-141b-4463-a358-1ad65c077424.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-PlanterGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/f10f0ca2-141b-4463-a358-1ad65c077424.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/f10f0ca2-141b-4463-a358-1ad65c077424.mp4\" type=\"video/mp4\"\u003eTHPS1-2-PlanterGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"playground-rail\"\u003ePlayground Rail \u003ca href=\"#playground-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/561dcdc2-6a59-40b4-9a0b-b973c16ee946.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-PlaygroundRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/561dcdc2-6a59-40b4-9a0b-b973c16ee946.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/561dcdc2-6a59-40b4-9a0b-b973c16ee946.mp4\" type=\"video/mp4\"\u003eTHPS1-2-PlaygroundRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"rail-to-rail-transfer\"\u003eRail to Rail Transfer \u003ca href=\"#rail-to-rail-transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/71867722-fb1f-4fc6-97f5-186508e96611.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-RailToRailTransfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/71867722-fb1f-4fc6-97f5-186508e96611.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/71867722-fb1f-4fc6-97f5-186508e96611.mp4\" type=\"video/mp4\"\u003eTHPS1-2-RailToRailTransfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"roof-to-awning-gap\"\u003eRoof To Awning Gap \u003ca href=\"#roof-to-awning-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/32669ecc-784a-4aa9-8c29-1ab6a55a1311.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-RoofToAwningGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/32669ecc-784a-4aa9-8c29-1ab6a55a1311.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/32669ecc-784a-4aa9-8c29-1ab6a55a1311.mp4\" type=\"video/mp4\"\u003eTHPS1-2-RoofToAwningGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"roof-to-roof-gap\"\u003eRoof To Roof Gap \u003ca href=\"#roof-to-roof-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bc543ef6-1aa3-46af-85e3-f469a63512fa.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-RoofToRoofGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/bc543ef6-1aa3-46af-85e3-f469a63512fa.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/bc543ef6-1aa3-46af-85e3-f469a63512fa.mp4\" type=\"video/mp4\"\u003eTHPS1-2-RoofToRoofGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"funbox-to-rail-transfer\"\u003eFunbox To Rail Transfer \u003ca href=\"#funbox-to-rail-transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/61f44f4f-1b44-4168-996d-1f80a2318a22.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-FunboxToRailTransfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/61f44f4f-1b44-4168-996d-1f80a2318a22.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/61f44f4f-1b44-4168-996d-1f80a2318a22.mp4\" type=\"video/mp4\"\u003eTHPS1-2-FunboxToRailTransfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"downhill-manual\"\u003eDownhill Manual \u003ca href=\"#downhill-manual\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/04e51c14-c73f-479b-8e7c-d81b63010a27.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-DownhillManual.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/04e51c14-c73f-479b-8e7c-d81b63010a27.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/04e51c14-c73f-479b-8e7c-d81b63010a27.mp4\" type=\"video/mp4\"\u003eTHPS1-2-DownhillManual.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"accross-the-gym\"\u003eAccross the Gym \u003ca href=\"#accross-the-gym\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/096328b8-a6b0-46be-b77e-ac89b5cac85e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-AccrossTheGym.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/096328b8-a6b0-46be-b77e-ac89b5cac85e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/096328b8-a6b0-46be-b77e-ac89b5cac85e.mp4\" type=\"video/mp4\"\u003eTHPS1-2-AccrossTheGym.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"roof-hop\"\u003eRoof Hop \u003ca href=\"#roof-hop\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/394c6a37-892a-47e3-8269-63bec30da2d8.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-RoofHop.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/394c6a37-892a-47e3-8269-63bec30da2d8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/394c6a37-892a-47e3-8269-63bec30da2d8.mp4\" type=\"video/mp4\"\u003eTHPS1-2-RoofHop.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"down-the-awning\"\u003eDown the Awning \u003ca href=\"#down-the-awning\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6a11fdcb-fc52-49ba-b858-1936deda6c9c.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-DownTheAwning.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/6a11fdcb-fc52-49ba-b858-1936deda6c9c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/6a11fdcb-fc52-49ba-b858-1936deda6c9c.mp4\" type=\"video/mp4\"\u003eTHPS1-2-DownTheAwning.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"perfectly-balanced\"\u003ePerfectly Balanced \u003ca href=\"#perfectly-balanced\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b561af30-30d2-4fc3-9e42-8ee1b630fa32.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-PerfectlyBalanced.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b561af30-30d2-4fc3-9e42-8ee1b630fa32.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b561af30-30d2-4fc3-9e42-8ee1b630fa32.mp4\" type=\"video/mp4\"\u003eTHPS1-2-PerfectlyBalanced.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"gigantic-rail\"\u003eGigantic Rail \u003ca href=\"#gigantic-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7beb12ae-3b44-466f-a7d5-59bde6584929.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-GiganticRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7beb12ae-3b44-466f-a7d5-59bde6584929.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7beb12ae-3b44-466f-a7d5-59bde6584929.mp4\" type=\"video/mp4\"\u003eTHPS1-2-GiganticRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"ridiculous-rail\"\u003eRidiculous Rail \u003ca href=\"#ridiculous-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d3583f74-ce98-49bf-91d8-c5e5e6afe0c8.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-2-RidiculousRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d3583f74-ce98-49bf-91d8-c5e5e6afe0c8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d3583f74-ce98-49bf-91d8-c5e5e6afe0c8.mp4\" type=\"video/mp4\"\u003eTHPS1-2-RidiculousRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"got-the-badge\"\u003eGot the badge \u003ca href=\"#got-the-badge\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d6cfd19a-0f9d-4faa-a22f-887620ed9b6e.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d6cfd19a-0f9d-4faa-a22f-887620ed9b6e.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nOn the road to **Gap Master** achievement I got all School Gaps in THPS1.\nThis is a super fun level, I'll have to admit that I had to look up at least a\nquarter of them, and could not find them myself, mostly due to the naming, all\nof the rail tricks were actually ledges and I was looking for big rails.  None\nof the warehouse gaps were manuals so I had no idea that the downhill and\naccross the gym would be manual tricks.\n\nPreviously \u003ca href=\"/thps-1-warehouse-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Warehouse Gaps\" data-description=\"On the road to ** achievement I got all Warehouse Gaps in THPS1. This is this classic warehouse level that everyone thinks of when THPS is mentioned. Such a...\" data-date=\"2025-02-22\"\u003eTHPS 1 Warehouse Gaps\u003c/a\u003e\nnext \u003ca href=\"/thps-1-mall-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Mall Gaps\" data-description=\"This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren\u0026#39;t as many gaps in it as I thought...\" data-date=\"2025-03-01\"\u003eTHPS 1 Mall Gaps\u003c/a\u003e\n\n![screenshot-2025-02-20T16-38-32-148Z.png](https://dropper.waylonwalker.com/api/file/0e56dc1e-27b6-4695-b4de-b8bc298285d7.png)\n![screenshot-2025-02-20T16-39-53-452Z.png](https://dropper.waylonwalker.com/api/file/71768034-e93c-4c48-bc0c-3d0b930dc327.png)\n\n## Ditchin Class\n\n![THPS1-2-DitchinClass.mp4](https://dropper.waylonwalker.com/api/file/cea84efd-5860-4ff4-ac17-6c2a9de4321e.mp4)\n\n## Dumpster Rail Gap\n\n![THPS1-2-DumpsterRailGap.mp4](https://dropper.waylonwalker.com/api/file/40139234-0b55-498a-8c01-c9e5ddcdc9a7.mp4)\n\n## Funbox Table Transfer\n\n![THPS1-2-FunBoxToTableTransfer.mp4](https://dropper.waylonwalker.com/api/file/fedfcae4-82f1-4332-b768-3008427b4601.mp4)\n\n## Garbage Ollie\n\n![THPS1-2-GarbageOllie.mp4](https://dropper.waylonwalker.com/api/file/e42a47d8-fa31-46ab-92b7-7e634dcb1b21.mp4)\n\n## Gimme Gap\n\n![THPS1-2-GimmeGap.mp4](https://dropper.waylonwalker.com/api/file/afa7cce3-33af-4c8f-bb40-99f3ff68f406.mp4)\n\n## Hall Pass gap\n\n![THPS1-2-HallPassGap.mp4](https://dropper.waylonwalker.com/api/file/e68285be-a9fd-4afb-977f-53cc0fff09e8.mp4)\n\n## All-Access Gap\n\n![THPS1-2-AllAccessGap.mp4](https://dropper.waylonwalker.com/api/file/7ff62672-9ff2-4f2f-a47f-e5fe15174e6e.mp4)\n\n## Huge Rail\n\n![THPS1-2-HugeRail.mp4](https://dropper.waylonwalker.com/api/file/0ba66287-8166-4573-875a-7ef7cac534d9.mp4)\n\n## Kicker Gap\n\n![THPS1-2-KickerGap.mp4](https://dropper.waylonwalker.com/api/file/974c4be7-0f80-49d6-85cd-ee3fd00f042e.mp4)\n\n## Long Ass Rail\n\n![THPS1-2-LongAssRail.mp4](https://dropper.waylonwalker.com/api/file/11e70881-e495-4988-b3fb-c7e6517394c6.mp4)\n\n## Mini Gap\n\n![THPS1-2-MiniGap.mp4](https://dropper.waylonwalker.com/api/file/374f1155-96de-442d-9972-5fd728b50cc2.mp4)\n\n## Over a Footbridge\n\n![THPS1-2-OverAFootBridge.mp4](https://dropper.waylonwalker.com/api/file/1445e693-9586-45b8-855e-d90b98066454.mp4)\n\n## Over the Air Condidtioner\n\n![THPS1-2-OverTheAirConditioner.mp4](https://dropper.waylonwalker.com/api/file/cdae2e2c-4ea9-49c1-b7b6-40a4f4fc4bce.mp4)\n\n## Park Gap\n\n![THPS1-2-ParkGap.mp4](https://dropper.waylonwalker.com/api/file/e525a6e7-373f-431d-839e-6a38047f2aa1.mp4)\n\n## Planter Gap\n\n![THPS1-2-PlanterGap.mp4](https://dropper.waylonwalker.com/api/file/f10f0ca2-141b-4463-a358-1ad65c077424.mp4)\n\n## Playground Rail\n\n![THPS1-2-PlaygroundRail.mp4](https://dropper.waylonwalker.com/api/file/561dcdc2-6a59-40b4-9a0b-b973c16ee946.mp4)\n\n## Rail to Rail Transfer\n\n![THPS1-2-RailToRailTransfer.mp4](https://dropper.waylonwalker.com/api/file/71867722-fb1f-4fc6-97f5-186508e96611.mp4)\n\n## Roof To Awning Gap\n\n![THPS1-2-RoofToAwningGap.mp4](https://dropper.waylonwalker.com/api/file/32669ecc-784a-4aa9-8c29-1ab6a55a1311.mp4)\n\n## Roof To Roof Gap\n\n![THPS1-2-RoofToRoofGap.mp4](https://dropper.waylonwalker.com/api/file/bc543ef6-1aa3-46af-85e3-f469a63512fa.mp4)\n\n## Funbox To Rail Transfer\n\n![THPS1-2-FunboxToRailTransfer.mp4](https://dropper.waylonwalker.com/api/file/61f44f4f-1b44-4168-996d-1f80a2318a22.mp4)\n\n## Downhill Manual\n\n![THPS1-2-DownhillManual.mp4](https://dropper.waylonwalker.com/api/file/04e51c14-c73f-479b-8e7c-d81b63010a27.mp4)\n\n## Accross the Gym\n\n![THPS1-2-AccrossTheGym.mp4](https://dropper.waylonwalker.com/api/file/096328b8-a6b0-46be-b77e-ac89b5cac85e.mp4)\n\n## Roof Hop\n\n![THPS1-2-RoofHop.mp4](https://dropper.waylonwalker.com/api/file/394c6a37-892a-47e3-8269-63bec30da2d8.mp4)\n\n## Down the Awning\n\n![THPS1-2-DownTheAwning.mp4](https://dropper.waylonwalker.com/api/file/6a11fdcb-fc52-49ba-b858-1936deda6c9c.mp4)\n\n## Perfectly Balanced\n\n![THPS1-2-PerfectlyBalanced.mp4](https://dropper.waylonwalker.com/api/file/b561af30-30d2-4fc3-9e42-8ee1b630fa32.mp4)\n\n## Gigantic Rail\n\n![THPS1-2-GiganticRail.mp4](https://dropper.waylonwalker.com/api/file/7beb12ae-3b44-466f-a7d5-59bde6584929.mp4)\n\n## Ridiculous Rail\n\n![THPS1-2-RidiculousRail.mp4](https://dropper.waylonwalker.com/api/file/d3583f74-ce98-49bf-91d8-c5e5e6afe0c8.mp4)\n\n## Got the badge\n\n![image](https://dropper.waylonwalker.com/api/file/d6cfd19a-0f9d-4faa-a22f-887620ed9b6e.webp)\n",
      "summary": "On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I'll have to admit that I had to look up at least a quarter of them,...",
      "date_published": "2025-03-01T10:39:28Z",
      "date_modified": "2025-03-01T10:39:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thps-gaps"
      ]
    },
    {
      "id": "https://waylonwalker.com/thps-1-mall-gaps/",
      "url": "https://waylonwalker.com/thps-1-mall-gaps/",
      "title": "THPS 1 Mall Gaps",
      "content_html": "\u003cp\u003eThis is one of the most memorable levels for me in THPS1 from when I had\noriginally played it.  Surprisingly there aren’t as many gaps in it as I\nthought there would be, there are definitely a lot that you can make up on your\nown.  Anyways here’s my playthrough of all the mall gaps in THPS1 on my way to gap master.\u003c/p\u003e\n\u003cp\u003ePreviously \u003ca href=\"/thps-1-school-gaps/\" class=\"wikilink\" data-title=\"THPS 1 School Gaps\" data-description=\"On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I\u0026#39;ll have to admit that I had to look up at least a quarter of them,...\" data-date=\"2025-03-01\" data-preview=\"On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I\u0026#39;ll have to admit that I had to look up at least a quarter of them,...\"\u003eTHPS 1 School Gaps\u003c/a\u003e\nNext \u003ca href=\"/thps-1-skate-park-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Skate Park Gaps\" data-description=\"Previously thps-1-mall-gaps Next thps-1-downtown-gaps\" data-date=\"2025-03-08\" data-preview=\"Previously thps-1-mall-gaps Next thps-1-downtown-gaps\"\u003eTHPS 1 Skate Park Gaps\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e4c2feb1-4d5c-480d-b9bd-7e98b9a7c58c.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e4c2feb1-4d5c-480d-b9bd-7e98b9a7c58c.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"huge-stair-set-off-a-mezzanine\"\u003eHuge Stair Set Off A Mezzanine \u003ca href=\"#huge-stair-set-off-a-mezzanine\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/dacd5c3a-1ded-470b-86fa-cb13c4f9fad0.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-HugeStairSetOffAMezzanine.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/dacd5c3a-1ded-470b-86fa-cb13c4f9fad0.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/dacd5c3a-1ded-470b-86fa-cb13c4f9fad0.mp4\" type=\"video/mp4\"\u003eTHPS1-3-HugeStairSetOffAMezzanine.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"coffee-grind\"\u003eCoffee Grind \u003ca href=\"#coffee-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4803cb45-6773-44c3-8650-536423d40741.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-CoffeeGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4803cb45-6773-44c3-8650-536423d40741.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4803cb45-6773-44c3-8650-536423d40741.mp4\" type=\"video/mp4\"\u003eTHPS1-3-CoffeeGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"the-flying-leap\"\u003eThe Flying Leap \u003ca href=\"#the-flying-leap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c9e6fe6a-a06b-4304-828f-004f7758694e.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-TheFlyingLeap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c9e6fe6a-a06b-4304-828f-004f7758694e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c9e6fe6a-a06b-4304-828f-004f7758694e.mp4\" type=\"video/mp4\"\u003eTHPS1-3-TheFlyingLeap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"for-the-whole-atrium\"\u003eFor the Whole Atrium \u003ca href=\"#for-the-whole-atrium\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3319839a-b57a-4ea9-99ed-744471bfd377.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-ForTheWholeAtrium.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3319839a-b57a-4ea9-99ed-744471bfd377.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3319839a-b57a-4ea9-99ed-744471bfd377.mp4\" type=\"video/mp4\"\u003eTHPS1-3-ForTheWholeAtrium.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"fountain-gap\"\u003eFountain Gap \u003ca href=\"#fountain-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/030956f6-d827-41da-8577-85e0e76f9041.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-FountainGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/030956f6-d827-41da-8577-85e0e76f9041.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/030956f6-d827-41da-8577-85e0e76f9041.mp4\" type=\"video/mp4\"\u003eTHPS1-3-FountainGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"exit-stage-right\"\u003eExit Stage Right \u003ca href=\"#exit-stage-right\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/212eef81-eeb2-48c4-b8a4-392c1e6479e1.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-ExitStageRight.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/212eef81-eeb2-48c4-b8a4-392c1e6479e1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/212eef81-eeb2-48c4-b8a4-392c1e6479e1.mp4\" type=\"video/mp4\"\u003eTHPS1-3-ExitStageRight.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"exit-stage-left\"\u003eExit Stage Left \u003ca href=\"#exit-stage-left\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8d9957e7-7cbd-4822-8b26-df9b9dc3f783.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-ExitStageLeft.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/8d9957e7-7cbd-4822-8b26-df9b9dc3f783.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/8d9957e7-7cbd-4822-8b26-df9b9dc3f783.mp4\" type=\"video/mp4\"\u003eTHPS1-3-ExitStageLeft.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-a-stair-set\"\u003eOver A Stair Set \u003ca href=\"#over-a-stair-set\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8c417457-0ea9-481d-af29-397fa2cbf1fa.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-OverAStairSet.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/8c417457-0ea9-481d-af29-397fa2cbf1fa.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/8c417457-0ea9-481d-af29-397fa2cbf1fa.mp4\" type=\"video/mp4\"\u003eTHPS1-3-OverAStairSet.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-a-huge-stair-set\"\u003eOver A Huge Stair Set \u003ca href=\"#over-a-huge-stair-set\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4aa2815f-f1c8-473e-8ede-2235a1f3b9ad.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-OverAHugeStairSet.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4aa2815f-f1c8-473e-8ede-2235a1f3b9ad.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4aa2815f-f1c8-473e-8ede-2235a1f3b9ad.mp4\" type=\"video/mp4\"\u003eTHPS1-3-OverAHugeStairSet.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"planter-gap\"\u003ePlanter Gap \u003ca href=\"#planter-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/de81b233-d43d-4696-9e48-f84e8ecdb971.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-PlanterGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/de81b233-d43d-4696-9e48-f84e8ecdb971.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/de81b233-d43d-4696-9e48-f84e8ecdb971.mp4\" type=\"video/mp4\"\u003eTHPS1-3-PlanterGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"rail-combo\"\u003eRail Combo \u003ca href=\"#rail-combo\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7edde848-0f0e-4160-b68b-17f9f567ab4b.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-RailCombo.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7edde848-0f0e-4160-b68b-17f9f567ab4b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7edde848-0f0e-4160-b68b-17f9f567ab4b.mp4\" type=\"video/mp4\"\u003eTHPS1-3-RailCombo.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"skater-excalator-gap\"\u003eSkater Excalator Gap \u003ca href=\"#skater-excalator-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d11a86da-56b0-4578-a5ff-eb752cbc4478.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-SkaterEscalatorGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d11a86da-56b0-4578-a5ff-eb752cbc4478.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d11a86da-56b0-4578-a5ff-eb752cbc4478.mp4\" type=\"video/mp4\"\u003eTHPS1-3-SkaterEscalatorGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"accross-the-light-beam\"\u003eAccross The Light Beam \u003ca href=\"#accross-the-light-beam\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0888bd4b-4f57-41e8-8b43-78c665d13ec9.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-AcrossTheLightBeam.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/0888bd4b-4f57-41e8-8b43-78c665d13ec9.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/0888bd4b-4f57-41e8-8b43-78c665d13ec9.mp4\" type=\"video/mp4\"\u003eTHPS1-3-AcrossTheLightBeam.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"the-long-rail\"\u003eThe Long Rail \u003ca href=\"#the-long-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/79d246e4-5fef-4061-a60f-7fdac6b8e5d8.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-TheLongRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/79d246e4-5fef-4061-a60f-7fdac6b8e5d8.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/79d246e4-5fef-4061-a60f-7fdac6b8e5d8.mp4\" type=\"video/mp4\"\u003eTHPS1-3-TheLongRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"the-short-rail\"\u003eThe Short Rail \u003ca href=\"#the-short-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/eaa5a04e-1f9b-48b6-ba9b-24f0923efeb2.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-3-TheShortRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/eaa5a04e-1f9b-48b6-ba9b-24f0923efeb2.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/eaa5a04e-1f9b-48b6-ba9b-24f0923efeb2.mp4\" type=\"video/mp4\"\u003eTHPS1-3-TheShortRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nThis is one of the most memorable levels for me in THPS1 from when I had\noriginally played it.  Surprisingly there aren't as many gaps in it as I\nthought there would be, there are definitely a lot that you can make up on your\nown.  Anyways here's my playthrough of all the mall gaps in THPS1 on my way to gap master.\n\nPreviously \u003ca href=\"/thps-1-school-gaps/\" class=\"wikilink\" data-title=\"THPS 1 School Gaps\" data-description=\"On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I\u0026#39;ll have to admit that I had to look up at least a quarter of them,...\" data-date=\"2025-03-01\"\u003eTHPS 1 School Gaps\u003c/a\u003e\nNext \u003ca href=\"/thps-1-skate-park-gaps/\" class=\"wikilink\" data-title=\"THPS 1 Skate Park Gaps\" data-description=\"Previously thps-1-mall-gaps Next thps-1-downtown-gaps\" data-date=\"2025-03-08\"\u003eTHPS 1 Skate Park Gaps\u003c/a\u003e\n\n![image](https://dropper.waylonwalker.com/api/file/e4c2feb1-4d5c-480d-b9bd-7e98b9a7c58c.webp)\n\n## Huge Stair Set Off A Mezzanine\n\n![THPS1-3-HugeStairSetOffAMezzanine.mp4](https://dropper.waylonwalker.com/api/file/dacd5c3a-1ded-470b-86fa-cb13c4f9fad0.mp4)\n\n## Coffee Grind\n\n![THPS1-3-CoffeeGrind.mp4](https://dropper.waylonwalker.com/api/file/4803cb45-6773-44c3-8650-536423d40741.mp4)\n\n## The Flying Leap\n\n![THPS1-3-TheFlyingLeap.mp4](https://dropper.waylonwalker.com/api/file/c9e6fe6a-a06b-4304-828f-004f7758694e.mp4)\n\n## For the Whole Atrium\n\n![THPS1-3-ForTheWholeAtrium.mp4](https://dropper.waylonwalker.com/api/file/3319839a-b57a-4ea9-99ed-744471bfd377.mp4)\n\n## Fountain Gap\n\n![THPS1-3-FountainGap.mp4](https://dropper.waylonwalker.com/api/file/030956f6-d827-41da-8577-85e0e76f9041.mp4)\n\n## Exit Stage Right\n\n![THPS1-3-ExitStageRight.mp4](https://dropper.waylonwalker.com/api/file/212eef81-eeb2-48c4-b8a4-392c1e6479e1.mp4)\n\n## Exit Stage Left\n\n![THPS1-3-ExitStageLeft.mp4](https://dropper.waylonwalker.com/api/file/8d9957e7-7cbd-4822-8b26-df9b9dc3f783.mp4)\n\n## Over A Stair Set\n\n![THPS1-3-OverAStairSet.mp4](https://dropper.waylonwalker.com/api/file/8c417457-0ea9-481d-af29-397fa2cbf1fa.mp4)\n\n## Over A Huge Stair Set\n\n![THPS1-3-OverAHugeStairSet.mp4](https://dropper.waylonwalker.com/api/file/4aa2815f-f1c8-473e-8ede-2235a1f3b9ad.mp4)\n\n## Planter Gap\n\n![THPS1-3-PlanterGap.mp4](https://dropper.waylonwalker.com/api/file/de81b233-d43d-4696-9e48-f84e8ecdb971.mp4)\n\n## Rail Combo\n\n![THPS1-3-RailCombo.mp4](https://dropper.waylonwalker.com/api/file/7edde848-0f0e-4160-b68b-17f9f567ab4b.mp4)\n\n## Skater Excalator Gap\n\n![THPS1-3-SkaterEscalatorGap.mp4](https://dropper.waylonwalker.com/api/file/d11a86da-56b0-4578-a5ff-eb752cbc4478.mp4)\n\n## Accross The Light Beam\n\n![THPS1-3-AcrossTheLightBeam.mp4](https://dropper.waylonwalker.com/api/file/0888bd4b-4f57-41e8-8b43-78c665d13ec9.mp4)\n\n## The Long Rail\n\n![THPS1-3-TheLongRail.mp4](https://dropper.waylonwalker.com/api/file/79d246e4-5fef-4061-a60f-7fdac6b8e5d8.mp4)\n\n## The Short Rail\n\n![THPS1-3-TheShortRail.mp4](https://dropper.waylonwalker.com/api/file/eaa5a04e-1f9b-48b6-ba9b-24f0923efeb2.mp4)\n",
      "summary": "This is one of the most memorable levels for me in THPS1 from when I had originally played it. Surprisingly there aren't as many gaps in it as I thought...",
      "date_published": "2025-03-01T10:39:28Z",
      "date_modified": "2025-03-01T10:39:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thps-gaps"
      ]
    },
    {
      "id": "https://waylonwalker.com/prefecthq-marvin/",
      "url": "https://waylonwalker.com/prefecthq-marvin/",
      "title": "⭐ PrefectHQ marvin",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/PrefectHQ\" 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\"\u003ePrefectHQ\u003c/a\u003e and their project \u003ca href=\"https://github.com/PrefectHQ/marvin\" 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\"\u003emarvin\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e✨ AI agents that spark joy\u003c/p\u003e\n",
      "content_text": "\nCheck out [PrefectHQ](https://github.com/PrefectHQ) and their project [marvin](https://github.com/PrefectHQ/marvin).\n\n✨ AI agents that spark joy\n",
      "summary": "Check out PrefectHQ and their project marvin.",
      "date_published": "2025-02-28T14:37:43Z",
      "date_modified": "2025-02-28T14:37:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-576/",
      "url": "https://waylonwalker.com/thought-576/",
      "title": "💭 Ergonomic Laptop — Evan and Katelyn",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.evanandkatelyn.com/blog/ergotop\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://static1.squarespace.com/static/65b8ea1c81afac1a1ecbd00d/67b798a55231271162503eac/67b798a55231271162503eae/1750099379498/vlcsnap-2025-02-10-11h23m28s424.png?format=1500w\" alt=\"Ergonomic Laptop — Evan and Katelyn — Back pain ends here.\" loading=\"lazy\"/ data-glightbox=\"description: Ergonomic Laptop — Evan and Katelyn — Back pain ends here.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eErgonomic Laptop — Evan and Katelyn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eBack pain ends here.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eEvan and Katelyn · evanandkatelyn.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is such a cool idea, I tend to not use laptops at all because they are so uncomfortable I just wait till I’m back at my desk.  This solves two main issues I have with laptops, the posture to use them is shit, the keyboards that come on them is not what I want to use.  I’ve solved the latter with my own custom keyboard.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.evanandkatelyn.com/blog/ergotop\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://static1.squarespace.com/static/65b8ea1c81afac1a1ecbd00d/67b798a55231271162503eac/67b798a55231271162503eae/1750099379498/vlcsnap-2025-02-10-11h23m28s424.png?format=1500w\" alt=\"Ergonomic Laptop — Evan and Katelyn — Back pain ends here.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eErgonomic Laptop — Evan and Katelyn\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eBack pain ends here.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eEvan and Katelyn \u0026middot; evanandkatelyn.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is such a cool idea, I tend to not use laptops at all because they are so uncomfortable I just wait till I'm back at my desk.  This solves two main issues I have with laptops, the posture to use them is shit, the keyboards that come on them is not what I want to use.  I've solved the latter with my own custom keyboard.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.evanandkatelyn.com/blog/ergotop",
      "date_published": "2025-02-28T14:01:14Z",
      "date_modified": "2025-02-28T14:01:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keyboard",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/rancher-system-upgrade-controller/",
      "url": "https://waylonwalker.com/rancher-system-upgrade-controller/",
      "title": "⭐ rancher system-upgrade-controller",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/rancher/system-upgrade-controller\" 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\"\u003esystem-upgrade-controller\u003c/a\u003e by \u003ca href=\"https://github.com/rancher\" 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\"\u003erancher\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eIn your Kubernetes, upgrading your nodes\u003c/p\u003e\n",
      "content_text": "\nJust starred [system-upgrade-controller](https://github.com/rancher/system-upgrade-controller) by [rancher](https://github.com/rancher). It's an exciting project with a lot to offer.\n\nIn your Kubernetes, upgrading your nodes\n",
      "summary": "Just starred system-upgrade-controller by rancher. It's an exciting project with a lot to offer.",
      "date_published": "2025-02-26T13:10:31Z",
      "date_modified": "2025-02-26T13:10:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/pythonarcade-arcade/",
      "url": "https://waylonwalker.com/pythonarcade-arcade/",
      "title": "⭐ pythonarcade arcade",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/pythonarcade/arcade\" 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\"\u003earcade\u003c/a\u003e by \u003ca href=\"https://github.com/pythonarcade\" 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\"\u003epythonarcade\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eEasy to use Python library for creating 2D arcade games.\u003c/p\u003e\n",
      "content_text": "\nJust starred [arcade](https://github.com/pythonarcade/arcade) by [pythonarcade](https://github.com/pythonarcade). It's an exciting project with a lot to offer.\n\nEasy to use Python library for creating 2D arcade games.\n",
      "summary": "Just starred arcade by pythonarcade. It's an exciting project with a lot to offer.",
      "date_published": "2025-02-25T14:03:02Z",
      "date_modified": "2025-02-25T14:03:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-575/",
      "url": "https://waylonwalker.com/thought-575/",
      "title": "💭 OpenTools | The open MCP server registry",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://opentools.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opentools.com/preview-card.png\" alt=\"OpenTools | The API for LLM tool use — One API to use any LLM with every MCP tool\" loading=\"lazy\"/ data-glightbox=\"description: OpenTools | The API for LLM tool use — One API to use any LLM with every MCP tool\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOpenTools | The API for LLM tool use\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOne API to use any LLM with every MCP tool\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eOpenTools · opentools.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eOpenTools is an index for mcp servers to work with new agentic workflows like roo code and windsurf.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://opentools.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opentools.com/preview-card.png\" alt=\"OpenTools | The API for LLM tool use — One API to use any LLM with every MCP tool\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOpenTools | The API for LLM tool use\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOne API to use any LLM with every MCP tool\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eOpenTools \u0026middot; opentools.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nOpenTools is an index for mcp servers to work with new agentic workflows like roo code and windsurf.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://opentools.com/",
      "date_published": "2025-02-23T22:31:33Z",
      "date_modified": "2025-02-23T22:31:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-574/",
      "url": "https://waylonwalker.com/thought-574/",
      "title": "💭 I Made My Own JBOD Enclosure For CHEAP - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"QGkqwdM0L6g\" title=\"I Made My Own JBOD Enclosure For CHEAP\" playlabel=\"Play: I Made My Own JBOD Enclosure For CHEAP\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI really like this idea for a \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e jbod. Hardware Haven builds out \u003cstrong\u003eJ\u003c/strong\u003eust a \u003cstrong\u003eB\u003c/strong\u003eunch \u003cstrong\u003eO\u003c/strong\u003ef \u003cstrong\u003eD\u003c/strong\u003eisks using some pretty affordable hardware and has up to 16 disks added to his homelab with the os having full access to use with zfs.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"QGkqwdM0L6g\" title=\"I Made My Own JBOD Enclosure For CHEAP\" playlabel=\"Play: I Made My Own JBOD Enclosure For CHEAP\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI really like this idea for a homelab jbod. Hardware Haven builds out **J**ust a **B**unch **O**f **D**isks using some pretty affordable hardware and has up to 16 disks added to his homelab with the os having full access to use with zfs.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=QGkqwdM0L6g\u0026t=781s",
      "date_published": "2025-02-23T22:30:42Z",
      "date_modified": "2025-02-23T22:30:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thps-1-warehouse-gaps/",
      "url": "https://waylonwalker.com/thps-1-warehouse-gaps/",
      "title": "THPS 1 Warehouse Gaps",
      "content_html": "\u003cp\u003eOn the road to \u003cstrong\u003eGap Master\u003c/strong\u003e achievement I got all Warehouse Gaps in THPS1.\nThis is this classic warehouse level that everyone thinks of when THPS is\nmentioned.  Such a good level, compact, easy to play, with some fun gaps that\nmight take a few tries to hit.\u003c/p\u003e\n\u003cp\u003eNext up \u003ca href=\"/thps-1-school-gaps/\" class=\"wikilink\" data-title=\"THPS 1 School Gaps\" data-description=\"On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I\u0026#39;ll have to admit that I had to look up at least a quarter of them,...\" data-date=\"2025-03-01\" data-preview=\"On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I\u0026#39;ll have to admit that I had to look up at least a quarter of them,...\"\u003eTHPS 1 School Gaps\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8b21df1c-9a79-4a07-a7c6-b660979aa3a1.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/8b21df1c-9a79-4a07-a7c6-b660979aa3a1.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"big-rail\"\u003eBig Rail \u003ca href=\"#big-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/973527d4-3cac-4034-8e4c-24eff10a11fa.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-BigRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/973527d4-3cac-4034-8e4c-24eff10a11fa.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/973527d4-3cac-4034-8e4c-24eff10a11fa.mp4\" type=\"video/mp4\"\u003eTHPS1-1-BigRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"channel-gap\"\u003eChannel Gap \u003ca href=\"#channel-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c05d4ced-c0e8-448b-89f8-c5837e55e073.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-ChannelGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c05d4ced-c0e8-448b-89f8-c5837e55e073.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c05d4ced-c0e8-448b-89f8-c5837e55e073.mp4\" type=\"video/mp4\"\u003eTHPS1-1-ChannelGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"deck-2-rail\"\u003eDeck 2 Rail \u003ca href=\"#deck-2-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5525ce76-d7c6-4047-b4f3-d0b811df2b82.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-Deck2Rail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/5525ce76-d7c6-4047-b4f3-d0b811df2b82.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/5525ce76-d7c6-4047-b4f3-d0b811df2b82.mp4\" type=\"video/mp4\"\u003eTHPS1-1-Deck2Rail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"face-plant\"\u003eFace Plant \u003ca href=\"#face-plant\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/83b23279-12fb-44e4-8a6f-6fbd6303879c.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-FacePlant.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/83b23279-12fb-44e4-8a6f-6fbd6303879c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/83b23279-12fb-44e4-8a6f-6fbd6303879c.mp4\" type=\"video/mp4\"\u003eTHPS1-1-FacePlant.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"high-rail\"\u003eHigh Rail \u003ca href=\"#high-rail\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6aa41edf-90a5-4390-88be-0ffd198fcf1d.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-HighRail.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/6aa41edf-90a5-4390-88be-0ffd198fcf1d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/6aa41edf-90a5-4390-88be-0ffd198fcf1d.mp4\" type=\"video/mp4\"\u003eTHPS1-1-HighRail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"holy-shi\"\u003eHoly Shi \u003ca href=\"#holy-shi\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8b2f149-a388-4b17-b2a2-d64bfce4af49.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-HolyShi.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8b2f149-a388-4b17-b2a2-d64bfce4af49.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8b2f149-a388-4b17-b2a2-d64bfce4af49.mp4\" type=\"video/mp4\"\u003eTHPS1-1-HolyShi.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kicker-2-ledge\"\u003eKicker 2 Ledge \u003ca href=\"#kicker-2-ledge\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e727f014-1388-4d12-bc60-8bd8741e73f7.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-Kicker2Ledge.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/e727f014-1388-4d12-bc60-8bd8741e73f7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/e727f014-1388-4d12-bc60-8bd8741e73f7.mp4\" type=\"video/mp4\"\u003eTHPS1-1-Kicker2Ledge.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"kicker-gap\"\u003eKicker Gap \u003ca href=\"#kicker-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0a4aa8fd-d565-4587-b6d7-39f2d90c63ec.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-KickerGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/0a4aa8fd-d565-4587-b6d7-39f2d90c63ec.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/0a4aa8fd-d565-4587-b6d7-39f2d90c63ec.mp4\" type=\"video/mp4\"\u003eTHPS1-1-KickerGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"monster-grind\"\u003eMonster Grind \u003ca href=\"#monster-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d51f61a5-8732-4398-adb2-53af9091564f.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-MonsterGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d51f61a5-8732-4398-adb2-53af9091564f.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d51f61a5-8732-4398-adb2-53af9091564f.mp4\" type=\"video/mp4\"\u003eTHPS1-1-MonsterGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"over-the-pipe\"\u003eOver The Pipe \u003ca href=\"#over-the-pipe\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/48af7cf1-c708-4560-ad21-c523de5029a7.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-OverThePipe.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/48af7cf1-c708-4560-ad21-c523de5029a7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/48af7cf1-c708-4560-ad21-c523de5029a7.mp4\" type=\"video/mp4\"\u003eTHPS1-1-OverThePipe.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"secret-room\"\u003eSecret Room \u003ca href=\"#secret-room\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ee5c0bf7-6a37-49ef-93c0-68ae9178c4ec.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-SecretRoom.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/ee5c0bf7-6a37-49ef-93c0-68ae9178c4ec.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/ee5c0bf7-6a37-49ef-93c0-68ae9178c4ec.mp4\" type=\"video/mp4\"\u003eTHPS1-1-SecretRoom.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"taxi-2-ledge\"\u003eTaxi 2 Ledge \u003ca href=\"#taxi-2-ledge\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fd3a20ae-dca6-4426-ab70-69525acbc34d.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-Taxi2Ledge.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/fd3a20ae-dca6-4426-ab70-69525acbc34d.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/fd3a20ae-dca6-4426-ab70-69525acbc34d.mp4\" type=\"video/mp4\"\u003eTHPS1-1-Taxi2Ledge.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"taxi-gap\"\u003eTaxi Gap \u003ca href=\"#taxi-gap\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c16310d0-48a3-46f5-ab68-83a58e1a249b.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-TaxiGap.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c16310d0-48a3-46f5-ab68-83a58e1a249b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c16310d0-48a3-46f5-ab68-83a58e1a249b.mp4\" type=\"video/mp4\"\u003eTHPS1-1-TaxiGap.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"transfer\"\u003eTransfer \u003ca href=\"#transfer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/980adcb5-87c9-4e23-bb1c-62d6833853f1.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-Transfer.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/980adcb5-87c9-4e23-bb1c-62d6833853f1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/980adcb5-87c9-4e23-bb1c-62d6833853f1.mp4\" type=\"video/mp4\"\u003eTHPS1-1-Transfer.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"transition-grind\"\u003eTransition Grind \u003ca href=\"#transition-grind\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/63f6f560-36e5-4d14-a200-9357f60ef468.mp4\" class=\"glightbox-link\" aria-label=\"THPS1-1-TransitionGrind.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/63f6f560-36e5-4d14-a200-9357f60ef468.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/63f6f560-36e5-4d14-a200-9357f60ef468.mp4\" type=\"video/mp4\"\u003eTHPS1-1-TransitionGrind.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nOn the road to **Gap Master** achievement I got all Warehouse Gaps in THPS1.\nThis is this classic warehouse level that everyone thinks of when THPS is\nmentioned.  Such a good level, compact, easy to play, with some fun gaps that\nmight take a few tries to hit.\n\nNext up \u003ca href=\"/thps-1-school-gaps/\" class=\"wikilink\" data-title=\"THPS 1 School Gaps\" data-description=\"On the road to ** achievement I got all School Gaps in THPS1. This is a super fun level, I\u0026#39;ll have to admit that I had to look up at least a quarter of them,...\" data-date=\"2025-03-01\"\u003eTHPS 1 School Gaps\u003c/a\u003e\n\n![image](https://dropper.waylonwalker.com/api/file/8b21df1c-9a79-4a07-a7c6-b660979aa3a1.webp)\n\n## Big Rail\n\n![THPS1-1-BigRail.mp4](https://dropper.waylonwalker.com/api/file/973527d4-3cac-4034-8e4c-24eff10a11fa.mp4)\n\n## Channel Gap\n\n![THPS1-1-ChannelGap.mp4](https://dropper.waylonwalker.com/api/file/c05d4ced-c0e8-448b-89f8-c5837e55e073.mp4)\n\n## Deck 2 Rail\n\n![THPS1-1-Deck2Rail.mp4](https://dropper.waylonwalker.com/api/file/5525ce76-d7c6-4047-b4f3-d0b811df2b82.mp4)\n\n## Face Plant\n\n![THPS1-1-FacePlant.mp4](https://dropper.waylonwalker.com/api/file/83b23279-12fb-44e4-8a6f-6fbd6303879c.mp4)\n\n## High Rail\n\n![THPS1-1-HighRail.mp4](https://dropper.waylonwalker.com/api/file/6aa41edf-90a5-4390-88be-0ffd198fcf1d.mp4)\n\n## Holy Shi\n\n![THPS1-1-HolyShi.mp4](https://dropper.waylonwalker.com/api/file/d8b2f149-a388-4b17-b2a2-d64bfce4af49.mp4)\n\n## Kicker 2 Ledge\n\n![THPS1-1-Kicker2Ledge.mp4](https://dropper.waylonwalker.com/api/file/e727f014-1388-4d12-bc60-8bd8741e73f7.mp4)\n\n## Kicker Gap\n\n![THPS1-1-KickerGap.mp4](https://dropper.waylonwalker.com/api/file/0a4aa8fd-d565-4587-b6d7-39f2d90c63ec.mp4)\n\n## Monster Grind\n\n![THPS1-1-MonsterGrind.mp4](https://dropper.waylonwalker.com/api/file/d51f61a5-8732-4398-adb2-53af9091564f.mp4)\n\n## Over The Pipe\n\n![THPS1-1-OverThePipe.mp4](https://dropper.waylonwalker.com/api/file/48af7cf1-c708-4560-ad21-c523de5029a7.mp4)\n\n## Secret Room\n\n![THPS1-1-SecretRoom.mp4](https://dropper.waylonwalker.com/api/file/ee5c0bf7-6a37-49ef-93c0-68ae9178c4ec.mp4)\n\n## Taxi 2 Ledge\n\n![THPS1-1-Taxi2Ledge.mp4](https://dropper.waylonwalker.com/api/file/fd3a20ae-dca6-4426-ab70-69525acbc34d.mp4)\n\n## Taxi Gap\n\n![THPS1-1-TaxiGap.mp4](https://dropper.waylonwalker.com/api/file/c16310d0-48a3-46f5-ab68-83a58e1a249b.mp4)\n\n## Transfer\n\n![THPS1-1-Transfer.mp4](https://dropper.waylonwalker.com/api/file/980adcb5-87c9-4e23-bb1c-62d6833853f1.mp4)\n\n## Transition Grind\n\n![THPS1-1-TransitionGrind.mp4](https://dropper.waylonwalker.com/api/file/63f6f560-36e5-4d14-a200-9357f60ef468.mp4)\n",
      "summary": "On the road to ** achievement I got all Warehouse Gaps in THPS1. This is this classic warehouse level that everyone thinks of when THPS is mentioned. Such a...",
      "date_published": "2025-02-22T20:46:03Z",
      "date_modified": "2025-02-22T20:46:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thps-gaps"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-573/",
      "url": "https://waylonwalker.com/thought-573/",
      "title": "💭 XCMKB: ZMK/Bluetooth Boards",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://xcmkb.com/pages/zmk-bluetooth-boards\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://xcmkb.com/cdn/shop/files/FONT_LOGO_9ae2f2fd-2df9-4523-a73a-b3e1cc37a52d.jpg?v=1720420689\" alt=\"XCMKB: ZMK/Bluetooth Boards — XCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it with a graphical presentation. Click Demo Keyboard if you dont have a split board with you, but wish to see how it works.\" loading=\"lazy\"/ data-glightbox=\"description: XCMKB: ZMK/Bluetooth Boards — XCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it with a graphical presentation. Click Demo Keyboard if you dont have a split board with you, but wish to see how it works.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eXCMKB: ZMK/Bluetooth Boards\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eXCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it wi...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eXCMKB · xcmkb.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eNice overview to getting started in zmk\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://xcmkb.com/pages/zmk-bluetooth-boards\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://xcmkb.com/cdn/shop/files/FONT_LOGO_9ae2f2fd-2df9-4523-a73a-b3e1cc37a52d.jpg?v=1720420689\" alt=\"XCMKB: ZMK/Bluetooth Boards — XCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it with a graphical presentation. Click Demo Keyboard if you dont have a split board with you, but wish to see how it works.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eXCMKB: ZMK/Bluetooth Boards\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eXCMKB: Key Remap Dear beginner, there is no real time key remap like Vial, but thanks to nickcoutsos for his work on Keymap Editor, a browser app allows you to load ZMK keymap code and manage it wi...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eXCMKB \u0026middot; xcmkb.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNice overview to getting started in zmk\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://xcmkb.com/pages/zmk-bluetooth-boards",
      "date_published": "2025-02-21T14:23:18Z",
      "date_modified": "2025-02-21T14:23:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keyboard",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/tailscale-github-action/",
      "url": "https://waylonwalker.com/tailscale-github-action/",
      "title": "⭐ tailscale github-action",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/tailscale\" 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\"\u003etailscale\u003c/a\u003e and their project \u003ca href=\"https://github.com/tailscale/github-action\" 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\"\u003egithub-action\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA GitHub Action to connect your workflow to your Tailscale network.\u003c/p\u003e\n",
      "content_text": "\nCheck out [tailscale](https://github.com/tailscale) and their project [github-action](https://github.com/tailscale/github-action).\n\nA GitHub Action to connect your workflow to your Tailscale network.\n",
      "summary": "Check out tailscale and their project github-action.",
      "date_published": "2025-02-21T14:14:22Z",
      "date_modified": "2025-02-21T14:14:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/kubenetworks-kubevpn/",
      "url": "https://waylonwalker.com/kubenetworks-kubevpn/",
      "title": "⭐ kubenetworks kubevpn",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/kubenetworks/kubevpn\" 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\"\u003ekubevpn\u003c/a\u003e by \u003ca href=\"https://github.com/kubenetworks\" 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\"\u003ekubenetworks\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eKubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network.\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [kubevpn](https://github.com/kubenetworks/kubevpn) by [kubenetworks](https://github.com/kubenetworks), and it's truly impressive.\n\nKubeVPN offers a Cloud Native Dev Environment that connects to kubernetes cluster network.\n",
      "summary": "I recently discovered kubevpn by kubenetworks, and it's truly impressive.",
      "date_published": "2025-02-21T14:14:01Z",
      "date_modified": "2025-02-21T14:14:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/pre-commit-exclude/",
      "url": "https://waylonwalker.com/pre-commit-exclude/",
      "title": "pre-commit exclude",
      "content_html": "\u003cp\u003eI run tailwind for my personal blog, whenever I update it, pre-commit goes in\nand fixes end of file.  I’m sick of these things fighting each other, since it\nis a generated app it is going to et ignored from pre-commit from now on.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eexclude\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003e^static/app.*\\.css$\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003erepos\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e  \u003c/span\u003e- \u003cspan class=\"nt\"\u003erepo\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ehttps://github.com/pre-commit/pre-commit-hooks\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003erev\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003ev2.4.0\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e    \u003c/span\u003e\u003cspan class=\"nt\"\u003ehooks\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003etrailing-whitespace\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eend-of-file-fixer\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck-yaml\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e- \u003cspan class=\"nt\"\u003eid\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003echeck-added-large-files\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\nI run tailwind for my personal blog, whenever I update it, pre-commit goes in\nand fixes end of file.  I'm sick of these things fighting each other, since it\nis a generated app it is going to et ignored from pre-commit from now on.\n\n``` yaml\nexclude: ^static/app.*\\.css$\nrepos:\n  - repo: https://github.com/pre-commit/pre-commit-hooks\n    rev: v2.4.0\n    hooks:\n      - id: trailing-whitespace\n      - id: end-of-file-fixer\n      - id: check-yaml\n      - id: check-added-large-files\n```\n",
      "summary": "I run tailwind for my personal blog, whenever I update it, pre-commit goes in and fixes end of file. I'm sick of these things fighting each other, since it...",
      "date_published": "2025-02-20T08:11:35Z",
      "date_modified": "2025-02-20T08:11:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-572/",
      "url": "https://waylonwalker.com/thought-572/",
      "title": "💭 Mantis Clamp by zuberio | Download free STL model | Printables...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.printables.com/model/48505-mantis-clamp/files\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://media.printables.com/media/prints/48505/images/8664062_127e488d-62e1-4339-ae21-3cb85906810b_de093769-7ae6-4856-b254-5dd8358289bc/thumbs/cover/1200x630/jpg/pxl_20250113_223252448.jpg\" alt=\"Mantis Clamp by zuberio | Download free STL model | Printables.com\" loading=\"lazy\"/ data-glightbox=\"description: Mantis Clamp by zuberio | Download free STL model | Printables.com\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMantis Clamp by zuberio | Download free STL model | Printables.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePrintables.com · printables.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eZuberios Mantic clamp, would ya look at it.  This thing looks like a handy tool for soldering. Excited to give it a try.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/101b97c0-99c6-40f5-bc2c-9d0bef3babb0.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/101b97c0-99c6-40f5-bc2c-9d0bef3babb0.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.printables.com/model/48505-mantis-clamp/files\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://media.printables.com/media/prints/48505/images/8664062_127e488d-62e1-4339-ae21-3cb85906810b_de093769-7ae6-4856-b254-5dd8358289bc/thumbs/cover/1200x630/jpg/pxl_20250113_223252448.jpg\" alt=\"Mantis Clamp by zuberio | Download free STL model | Printables.com\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eMantis Clamp by zuberio | Download free STL model | Printables.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePrintables.com \u0026middot; printables.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nZuberios Mantic clamp, would ya look at it.  This thing looks like a handy tool for soldering. Excited to give it a try.\n\n![image](https://dropper.waylonwalker.com/api/file/101b97c0-99c6-40f5-bc2c-9d0bef3babb0.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.printables.com/model/48505-mantis-clamp/files",
      "date_published": "2025-02-18T22:24:06Z",
      "date_modified": "2025-02-18T22:24:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-571/",
      "url": "https://waylonwalker.com/thought-571/",
      "title": "💭 The 3D Printed Mantis Clamp! #3dprinting #shorts #diy - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"a8uzENYZ72k\" title=\"The 3D Printed Mantis Clamp! #3dprinting #shorts #diy\" playlabel=\"Play: The 3D Printed Mantis Clamp! #3dprinting #shorts #diy\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn this looks good, I’ve been casually keeping my eye out for something like this for quite awhile, I think this will come in handy for keeb builds.  Printing one out as I post this, damn I love 3d-printing.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ddbde7a1-8b8a-4096-92e2-1e602b1603a2.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ddbde7a1-8b8a-4096-92e2-1e602b1603a2.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"a8uzENYZ72k\" title=\"The 3D Printed Mantis Clamp! #3dprinting #shorts #diy\" playlabel=\"Play: The 3D Printed Mantis Clamp! #3dprinting #shorts #diy\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDamn this looks good, I've been casually keeping my eye out for something like this for quite awhile, I think this will come in handy for keeb builds.  Printing one out as I post this, damn I love 3d-printing.\n\n![image](https://dropper.waylonwalker.com/api/file/ddbde7a1-8b8a-4096-92e2-1e602b1603a2.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/a8uzENYZ72k",
      "date_published": "2025-02-18T22:22:54Z",
      "date_modified": "2025-02-18T22:22:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "3d-printing",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-570/",
      "url": "https://waylonwalker.com/thought-570/",
      "title": "💭 There are many Style Guides but this is Mine—zachleat.com",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.zachleat.com/web/style-guide/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fweb%2Fstyle-guide%2F%3Fcache%3D_20251031/opengraph/\" alt=\"There are many Style Guides but this is Mine—zachleat.com — A post by Zach Leatherman (zachleat)\" loading=\"lazy\"/ data-glightbox=\"description: There are many Style Guides but this is Mine—zachleat.com — A post by Zach Leatherman (zachleat)\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThere are many Style Guides but this is Mine—zachleat.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA post by Zach Leatherman (zachleat)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eZach Leatherman · zachleat.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eZach’s site looks sick colors are all on point, the fonts are so good.  I really like the idea of a style-guide.  I think I might be renaming my \u003ca href=\"/sample/\" class=\"wikilink\" data-title=\"Sample\" data-description=\"There is a glossary item in vibe coding here and clippy no simpy.\" data-date=\"2021-01-25\" data-preview=\"There is a glossary item in vibe coding here and clippy no simpy.\"\u003eSample\u003c/a\u003e post to style-guide now.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.zachleat.com/web/style-guide/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://screenshot.11ty.app/https%3A%2F%2Fwww.zachleat.com%2Fweb%2Fstyle-guide%2F%3Fcache%3D_20251031/opengraph/\" alt=\"There are many Style Guides but this is Mine—zachleat.com — A post by Zach Leatherman (zachleat)\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThere are many Style Guides but this is Mine—zachleat.com\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA post by Zach Leatherman (zachleat)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eZach Leatherman \u0026middot; zachleat.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nZach's site looks sick colors are all on point, the fonts are so good.  I really like the idea of a style-guide.  I think I might be renaming my \u003ca href=\"/sample/\" class=\"wikilink\" data-title=\"Sample\" data-description=\"There is a glossary item in vibe coding here and clippy no simpy.\" data-date=\"2021-01-25\"\u003eSample\u003c/a\u003e post to style-guide now.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.zachleat.com/web/style-guide/",
      "date_published": "2025-02-18T01:56:24Z",
      "date_modified": "2025-02-18T01:56:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-569/",
      "url": "https://waylonwalker.com/thought-569/",
      "title": "💭 python-build-standalone/.github/workflows/release.yml at main ...",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml\" class=\"glightbox-link\" aria-label=\"https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml\" alt=\"https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml\"/ data-glightbox=\"description: https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAstral uses just in CI, kinda cool to stumble into this setup in the wild.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erun: just release-run \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e{ secrets.GITHUB_TOKEN \u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e{ github.event.inputs.sha \u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e{ github.event.inputs.tag \u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd her is the accompanying justfile.  you can see how it accepts arguments, and starts calling out to other just recipes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nf\"\u003erelease-run token commit tag\u003c/span\u003e\u003cspan class=\"o\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"c1\"\u003e#!/bin/bash\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nb\"\u003eset\u003c/span\u003e -eo pipefail\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  rm -rf dist\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  just release-download-distributions \u003cspan class=\"o\"\u003e{{\u003c/span\u003etoken\u003cspan class=\"o\"\u003e}}\u003c/span\u003e \u003cspan class=\"o\"\u003e{{\u003c/span\u003ecommit\u003cspan class=\"o\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nv\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003els dist/cpython-3.10.*-x86_64-unknown-linux-gnu-install_only-*.tar.gz  \u003cspan class=\"p\"\u003e|\u003c/span\u003e awk -F- \u003cspan class=\"s1\"\u003e\u0026#39;{print $8}\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e awk -F. \u003cspan class=\"s1\"\u003e\u0026#39;{print $1}\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  just release-upload-distributions \u003cspan class=\"o\"\u003e{{\u003c/span\u003etoken\u003cspan class=\"o\"\u003e}}\u003c/span\u003e \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003edatetime\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e \u003cspan class=\"o\"\u003e{{\u003c/span\u003etag\u003cspan class=\"o\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  just release-set-latest-release \u003cspan class=\"o\"\u003e{{\u003c/span\u003etag\u003cspan class=\"o\"\u003e}}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml](/static/https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml)\n\nAstral uses just in CI, kinda cool to stumble into this setup in the wild.\n\n``` bash\nrun: just release-run ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.sha }} ${{ github.event.inputs.tag }}\n```\nAnd her is the accompanying justfile.  you can see how it accepts arguments, and starts calling out to other just recipes.\n\n``` justfile\nrelease-run token commit tag:\n  #!/bin/bash\n  set -eo pipefail\n\n  rm -rf dist\n  just release-download-distributions {{token}} {{commit}}\n  datetime=$(ls dist/cpython-3.10.*-x86_64-unknown-linux-gnu-install_only-*.tar.gz  | awk -F- '{print $8}' | awk -F. '{print $1}')\n  just release-upload-distributions {{token}} ${datetime} {{tag}}\n  just release-set-latest-release {{tag}}\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/astral-sh/python-build-standalone/blob/main/.github/workflows/release.yml",
      "date_published": "2025-02-17T23:21:05Z",
      "date_modified": "2025-02-17T23:21:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "just",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-568/",
      "url": "https://waylonwalker.com/thought-568/",
      "title": "💭 fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/ae9b2c9a3a50de71e6058359f2fac9dc8ba91b6039ac557cc1c385d720c137be/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9\" alt=\"fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da — Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\" loading=\"lazy\"/ data-glightbox=\"description: fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da — Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLatest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003efixing more ahrefs issues on the road to fixing all major issues within my control I found a ton of urls pointed to an url with a double slash, turns out I wasn’t properly referencing slug with post.slug.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d821eb80-aeaa-4f96-becd-7609b798663c.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d821eb80-aeaa-4f96-becd-7609b798663c.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/ae9b2c9a3a50de71e6058359f2fac9dc8ba91b6039ac557cc1c385d720c137be/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9\" alt=\"fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da — Latest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLatest version of waylonwalker.com - dev.waylonwalker.com - fix double slash in url · WaylonWalker/waylonwalker.com@93ca7da\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nfixing more ahrefs issues on the road to fixing all major issues within my control I found a ton of urls pointed to an url with a double slash, turns out I wasn't properly referencing slug with post.slug.\n\n![image](https://dropper.waylonwalker.com/api/file/d821eb80-aeaa-4f96-becd-7609b798663c.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/waylonwalker.com/commit/93ca7da6dd37100d2fb2cd989c2ddb31692c3bf9",
      "date_published": "2025-02-17T22:32:04Z",
      "date_modified": "2025-02-17T22:32:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-567/",
      "url": "https://waylonwalker.com/thought-567/",
      "title": "💭 fix json schema · WaylonWalker/waylonwalker.com@deebd40",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/adc37dbf80305b6974e7593a6646169095b20c0c0f7ff71d70c46b1d03c66635/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a\" alt=\"fix json schema · WaylonWalker/waylonwalker.com@deebd40 — Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40\" loading=\"lazy\"/ data-glightbox=\"description: fix json schema · WaylonWalker/waylonwalker.com@deebd40 — Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efix json schema · WaylonWalker/waylonwalker.com@deebd40\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLatest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI found that I had \u003cem\u003eStructured data has schema.org validation error\u003c/em\u003e on essentially every single page on my blog, turns out I had made some changes and have never tried to validate it.  Damn json and its hatred towards trailing commas.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/889378f5-6444-4a38-a7e4-c305fe93e1d7.webp\" class=\"glightbox-link\" aria-label=\"889378f5-6444-4a38-a7e4-c305fe93e1d7.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/889378f5-6444-4a38-a7e4-c305fe93e1d7.webp\" alt=\"889378f5-6444-4a38-a7e4-c305fe93e1d7.webp\"/ data-glightbox=\"description: 889378f5-6444-4a38-a7e4-c305fe93e1d7.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ca373ce6-9a4a-4e5b-8a0e-0b2959915ab5.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ca373ce6-9a4a-4e5b-8a0e-0b2959915ab5.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/adc37dbf80305b6974e7593a6646169095b20c0c0f7ff71d70c46b1d03c66635/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a\" alt=\"fix json schema · WaylonWalker/waylonwalker.com@deebd40 — Latest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efix json schema · WaylonWalker/waylonwalker.com@deebd40\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLatest version of waylonwalker.com - dev.waylonwalker.com - fix json schema · WaylonWalker/waylonwalker.com@deebd40\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI found that I had _Structured data has schema.org validation error_ on essentially every single page on my blog, turns out I had made some changes and have never tried to validate it.  Damn json and its hatred towards trailing commas.\n\n\n![889378f5-6444-4a38-a7e4-c305fe93e1d7.webp](https://dropper.waylonwalker.com/api/file/889378f5-6444-4a38-a7e4-c305fe93e1d7.webp)\n\n\n![image](https://dropper.waylonwalker.com/api/file/ca373ce6-9a4a-4e5b-8a0e-0b2959915ab5.webp)\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/waylonwalker.com/commit/deebd400e638bfaa41db953530597983ae0df82a",
      "date_published": "2025-02-17T22:26:01Z",
      "date_modified": "2025-02-17T22:26:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-566/",
      "url": "https://waylonwalker.com/thought-566/",
      "title": "💭 Weblogging: Part 1 – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2024/12/09/weblogging-1/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2024-12-09-weblogging-1.png\" alt=\"Weblogging: Part 1 — The one where I blog about blogging (part 1)\" loading=\"lazy\"/ data-glightbox=\"description: Weblogging: Part 1 — The one where I blog about blogging (part 1)\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWeblogging: Part 1\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I blog about blogging (part 1)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eLong live RSS!  Rss is not dead David, you are right there.  I really agree with David that learning a topic well enough to form thoughts and write about it really help learning.  You don’t need to be an expert, but forming your own thoughts, putting ideas in words takes a lot more than surface level knowledge.  When you try to write or speak about something you quickly realize where your holes in understanding are.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBlogging helps me learn. When I commit knowledge to writing it reinforces what I know and shines a spotlight on what I don’t. Most topics require additional research. Even then, I occasionally get things wrong, or miss different ways of thinking, and I welcome corrections. I’ll often update and enrich my posts based on feedback. Without my blog I’d miss other points of view.\u003c/p\u003e\n\u003cp\u003eAs they say, the best way to get an answer on the internet is not to pose a question, but to assert the wrong solution! Most feedback I get is constructive. Sometimes it’s blunt but I try not to read into unspoken sentiment. Some people are more direct. If the end result is positive learning, I can take a hit or two.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2024/12/09/weblogging-1/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2024-12-09-weblogging-1.png\" alt=\"Weblogging: Part 1 — The one where I blog about blogging (part 1)\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWeblogging: Part 1\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I blog about blogging (part 1)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nLong live RSS!  Rss is not dead David, you are right there.  I really agree with David that learning a topic well enough to form thoughts and write about it really help learning.  You don't need to be an expert, but forming your own thoughts, putting ideas in words takes a lot more than surface level knowledge.  When you try to write or speak about something you quickly realize where your holes in understanding are.\n\n\u003e Blogging helps me learn. When I commit knowledge to writing it reinforces what I know and shines a spotlight on what I don’t. Most topics require additional research. Even then, I occasionally get things wrong, or miss different ways of thinking, and I welcome corrections. I’ll often update and enrich my posts based on feedback. Without my blog I’d miss other points of view.\n\u003e \n\u003e As they say, the best way to get an answer on the internet is not to pose a question, but to assert the wrong solution! Most feedback I get is constructive. Sometimes it’s blunt but I try not to read into unspoken sentiment. Some people are more direct. If the end result is positive learning, I can take a hit or two.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2024/12/09/weblogging-1/",
      "date_published": "2025-02-17T21:01:00Z",
      "date_modified": "2025-02-17T21:01:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-565/",
      "url": "https://waylonwalker.com/thought-565/",
      "title": "💭 fix: Open Graph URL not matching canonical · WaylonWalker/wayl...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/eadd9b7a04f6414f59da1c650ec20ab1bf5f5bc2d75b7ec71f784e28d963bc99/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd\" alt=\"fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b — Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\" loading=\"lazy\"/ data-glightbox=\"description: fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b — Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLatest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIn fixing a bunch of meta tags, I introduced \u003cem\u003eOpen Graph URL not matching canonical\u003c/em\u003e on every page by having trailing / on canonical and not on the \u003ccode\u003eog:url\u003c/code\u003e.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/1adedfb8-5fbd-4622-adda-2f3984baeb03.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/1adedfb8-5fbd-4622-adda-2f3984baeb03.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThis commit will fix the error.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/eadd9b7a04f6414f59da1c650ec20ab1bf5f5bc2d75b7ec71f784e28d963bc99/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd\" alt=\"fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b — Latest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003efix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLatest version of waylonwalker.com - dev.waylonwalker.com - fix: Open Graph URL not matching canonical · WaylonWalker/waylonwalker.com@0fd994b\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIn fixing a bunch of meta tags, I introduced _Open Graph URL not matching canonical_ on every page by having trailing / on canonical and not on the `og:url`.\n\n![image](https://dropper.waylonwalker.com/api/file/1adedfb8-5fbd-4622-adda-2f3984baeb03.webp)\n\nThis commit will fix the error.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/waylonwalker.com/commit/0fd994b0101f7260051ec914ea6987e1c70603bd",
      "date_published": "2025-02-17T20:53:22Z",
      "date_modified": "2025-02-17T20:53:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one---nooo-luuucy/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one---nooo-luuucy/",
      "title": "Dont Starve Together Session One - Nooo Luuucy",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together session one - NOOO LUUUCY\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4\" type=\"video/mp4\"\u003eDont Starve Together session one - NOOO LUUUCY\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eAfter that embarrasing death I made my way over to a touchstone I found and Woodie is back from the dead, but without his beloved Lucy, to get her we will need to go\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together session one - NOOO LUUUCY](https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4)\n\n\u003e After that embarrasing death I made my way over to a touchstone I found and Woodie is back from the dead, but without his beloved Lucy, to get her we will need to go\n\n\n",
      "summary": "After that embarrasing death I made my way over to a touchstone I found and Woodie is back from the dead, but without his beloved Lucy, to get her we will need to go",
      "image": "https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4",
      "date_published": "2025-02-17T09:40:05Z",
      "date_modified": "2025-02-17T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-564/",
      "url": "https://waylonwalker.com/thought-564/",
      "title": "💭 Cotton Coder – David Bushell – Web Dev (UK)",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2024/01/24/cotton-coder/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dbushell.com/images/articles/2024-01-24-cotton-coder.png\" alt=\"Cotton Coder — The one where I launch a new blog\" loading=\"lazy\"/ data-glightbox=\"description: Cotton Coder — The one where I launch a new blog\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCotton Coder\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I launch a new blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com · dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI like Davids idea for cotton coder here, reminds me a lot of \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e, which turns out to be mroe commonly called a linkblog.  I can relate to David heavily on gathering too many side projects and soem collecting more digital dust than you would really like them to.  I use thoughts for quick publishing, very similar to David’s \u003ca href=\"https://dbushell.com/notes/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dbushell.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dbushell.com.ico\" class=\"has-avatar  has-avatar-before\"\u003enotes\u003c/a\u003e.  I have tags and titles, but the titles are a reflection of the post I’m taking a note on.  They are short and sweet, I put just enough thought into them without overthinking them.  They live as a separate server hosted website, but the data gets pulled into my blog at build time, so they end up in the same place eventually.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://dbushell.com/2024/01/24/cotton-coder/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dbushell.com/images/articles/2024-01-24-cotton-coder.png\" alt=\"Cotton Coder — The one where I launch a new blog\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eCotton Coder\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eThe one where I launch a new blog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edbushell.com \u0026middot; dbushell.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI like Davids idea for cotton coder here, reminds me a lot of \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e, which turns out to be mroe commonly called a linkblog.  I can relate to David heavily on gathering too many side projects and soem collecting more digital dust than you would really like them to.  I use thoughts for quick publishing, very similar to David's [notes](https://dbushell.com/notes/).  I have tags and titles, but the titles are a reflection of the post I'm taking a note on.  They are short and sweet, I put just enough thought into them without overthinking them.  They live as a separate server hosted website, but the data gets pulled into my blog at build time, so they end up in the same place eventually.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://dbushell.com/2024/01/24/cotton-coder/",
      "date_published": "2025-02-17T03:05:12Z",
      "date_modified": "2025-02-17T03:05:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-563/",
      "url": "https://waylonwalker.com/thought-563/",
      "title": "💭 valkey-io/valkey: A flexible distributed key-value datastore t...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/valkey-io/valkey\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/ae4c631b8cb805f46c9ed661a72ab4f1ae27acf50c3ffd9b430ad1d219c3b4d2/valkey-io/valkey\" alt=\"GitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads. — A flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads. — A flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003evalkey appears to be the largest open source fork of redis that was forked just before their transition to the new source available licenses.\u003c/p\u003e\n\u003cp\u003eOne notable thing missing from the readme is how to run with docker, which I saw in the valkey-py docs.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edocker run -p 6379:6379 -it valkey/valkey:latest\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou can install the python library with\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epython -m venv .venv\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e. ./.venv/bin/activate\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install \u003cspan class=\"s2\"\u003e\u0026#34;valkey[libvalkey]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/valkey-io/valkey\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/ae4c631b8cb805f46c9ed661a72ab4f1ae27acf50c3ffd9b430ad1d219c3b4d2/valkey-io/valkey\" alt=\"GitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads. — A flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - valkey-io/valkey: A flexible distributed key-value database that is optimized for caching and other realtime workloads.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA flexible distributed key-value database that is optimized for caching and other realtime workloads. - valkey-io/valkey\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nvalkey appears to be the largest open source fork of redis that was forked just before their transition to the new source available licenses.\n\nOne notable thing missing from the readme is how to run with docker, which I saw in the valkey-py docs.\n\n``` bash\ndocker run -p 6379:6379 -it valkey/valkey:latest\n```\n\nYou can install the python library with\n\n``` bash\npython -m venv .venv\n. ./.venv/bin/activate\npip install \"valkey[libvalkey]\"\n```\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/valkey-io/valkey",
      "date_published": "2025-02-17T02:27:34Z",
      "date_modified": "2025-02-17T02:27:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/valkey-io-valkey-py/",
      "url": "https://waylonwalker.com/valkey-io-valkey-py/",
      "title": "⭐ valkey-io valkey-py",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/valkey-io/valkey-py\" 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\"\u003evalkey-py\u003c/a\u003e, created by \u003ca href=\"https://github.com/valkey-io\" 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\"\u003evalkey-io\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eValkey Python client based on a fork of redis-py\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [valkey-py](https://github.com/valkey-io/valkey-py), created by [valkey-io](https://github.com/valkey-io).\n\nValkey Python client based on a fork of redis-py\n",
      "summary": "If you're into interesting projects, don't miss out on valkey-py, created by valkey-io.",
      "date_published": "2025-02-17T02:24:49Z",
      "date_modified": "2025-02-17T02:24:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/valkey-io-valkey/",
      "url": "https://waylonwalker.com/valkey-io-valkey/",
      "title": "⭐ valkey-io valkey",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/valkey-io/valkey\" 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\"\u003evalkey\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/valkey-io\" 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\"\u003evalkey-io\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eA flexible distributed key-value datastore that is optimized for caching and other realtime workloads.\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [valkey](https://github.com/valkey-io/valkey), an amazing project by [valkey-io](https://github.com/valkey-io). It's worth exploring!\n\nA flexible distributed key-value datastore that is optimized for caching and other realtime workloads.\n",
      "summary": "I'm really excited about valkey, an amazing project by valkey-io. It's worth exploring!",
      "date_published": "2025-02-17T02:22:53Z",
      "date_modified": "2025-02-17T02:22:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-562/",
      "url": "https://waylonwalker.com/thought-562/",
      "title": "💭 valkey · PyPI",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pypi.org/project/valkey/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://pypi.org/static/images/twitter.abaf4b19.webp\" alt=\"valkey — Python client for Valkey forked from redis-py\" loading=\"lazy\"/ data-glightbox=\"description: valkey — Python client for Valkey forked from redis-py\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003evalkey\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePython client for Valkey forked from redis-py\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePyPI · pypi.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003epython bindings for valkey, forked from redis.\u003c/p\u003e\n\u003cp\u003eone notable difference I see from redis is that you can install with libvalkey to autmatically get faster parsing support.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eFor faster performance, install valkey with libvalkey support, this provides a compiled response parser, and for most cases requires zero code changes. By default, if libvalkey \u0026gt;= 2.3.2 is available, valkey-py will attempt to use it for response parsing.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epip install \u003cspan class=\"s2\"\u003e\u0026#34;valkey[libvalkey]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://pypi.org/project/valkey/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://pypi.org/static/images/twitter.abaf4b19.webp\" alt=\"valkey — Python client for Valkey forked from redis-py\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003evalkey\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ePython client for Valkey forked from redis-py\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePyPI \u0026middot; pypi.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\npython bindings for valkey, forked from redis.\n\none notable difference I see from redis is that you can install with libvalkey to autmatically get faster parsing support.\n\n\u003e For faster performance, install valkey with libvalkey support, this provides a compiled response parser, and for most cases requires zero code changes. By default, if libvalkey \u003e= 2.3.2 is available, valkey-py will attempt to use it for response parsing.\n\n``` bash\npip install \"valkey[libvalkey]\"\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://pypi.org/project/valkey/",
      "date_published": "2025-02-17T02:22:12Z",
      "date_modified": "2025-02-17T02:22:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one---burt-food/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one---burt-food/",
      "title": "Dont Starve Together Session One - Burt Food",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together session one - burt food\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4\" type=\"video/mp4\"\u003eDont Starve Together session one - burt food\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eTo kick off the second session, I noticed that when you have a torch you can light your cooking pot, what I did not realize was that this burns your cooking pot to smitherines.  Nothing left but a frame of \u003cstrong\u003euseless\u003c/strong\u003e ashes.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together session one - burt food](https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4)\n\n\u003e To kick off the second session, I noticed that when you have a torch you can light your cooking pot, what I did not realize was that this burns your cooking pot to smitherines.  Nothing left but a frame of **useless** ashes.\n\n\n",
      "summary": "To kick off the second session, I noticed that when you have a torch you can light your cooking pot, what I did not realize was that this burns your cooking pot to smitherines. Nothing left but a frame of ** ashes.",
      "image": "https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4",
      "date_published": "2025-02-16T09:40:05Z",
      "date_modified": "2025-02-16T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-561/",
      "url": "https://waylonwalker.com/thought-561/",
      "title": "💭 Fragmentions - linking to any text",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.kevinmarks.com/fragmentions.html#%22eventually%20every%20URL%20ends%20up%20as%20a%20porn%20site%22\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.kevinmarks.com.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.kevinmarks.com.jpg\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFragmentions - linking to any text\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekevinmarks.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI can’t believe I’ve never see this Tim Berners-Lee quote, but I can’t unsee it and will be required to reference it from now on.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eeventually every URL ends up as a porn site\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI had a friend let his blog domain expire, within a short period it was scooped up and was hosting porn.  I don’t know why, but my best guess is that they were holding it ransom with the most embarrassing content to have your personal site replaced with.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.kevinmarks.com/fragmentions.html#%22eventually%20every%20URL%20ends%20up%20as%20a%20porn%20site%22\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFragmentions - linking to any text\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekevinmarks.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI can't believe I've never see this Tim Berners-Lee quote, but I can't unsee it and will be required to reference it from now on.\n\n\u003e eventually every URL ends up as a porn site\n\nI had a friend let his blog domain expire, within a short period it was scooped up and was hosting porn.  I don't know why, but my best guess is that they were holding it ransom with the most embarrassing content to have your personal site replaced with.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.kevinmarks.com/fragmentions.html#%22eventually%20every%20URL%20ends%20up%20as%20a%20porn%20site%22",
      "date_published": "2025-02-15T15:39:33Z",
      "date_modified": "2025-02-15T15:39:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "indieweb",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-560/",
      "url": "https://waylonwalker.com/thought-560/",
      "title": "💭 hype cp | Hypermedia Copy \u0026 Paste",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hypecp.com/\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/hypecp.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/hypecp.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ehype cp | Hypermedia Copy \u0026amp; Paste\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehypecp.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a super cool reference for \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e snippets.  I really like how he has a couple of errors on the page as examples with examples that fix these common errors.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hypecp.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ehype cp | Hypermedia Copy \u0026amp; Paste\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ehypecp.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a super cool reference for htmx snippets.  I really like how he has a couple of errors on the page as examples with examples that fix these common errors.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hypecp.com/",
      "date_published": "2025-02-15T15:31:52Z",
      "date_modified": "2025-02-15T15:31:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one---getting-into-it-with-a-clockwork-bishop/",
      "title": "Dont Starve Together Session One - Getting Into It With A Clockwork Bishop",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together session one - Getting into it with a Clockwork Bishop\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4\" type=\"video/mp4\"\u003eDont Starve Together session one - Getting into it with a Clockwork Bishop\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eAs I was gathering resources with Lucy, minding my own business \u003cstrong\u003eBAM\u003c/strong\u003e I got hit with an attack from a Clockwork Bishop, man these things hit hard and have really good aim.  I took three hits before getting away, leaving me with very low heath at the end of this play session.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together session one - Getting into it with a Clockwork Bishop](https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4)\n\n\u003e As I was gathering resources with Lucy, minding my own business **BAM** I got hit with an attack from a Clockwork Bishop, man these things hit hard and have really good aim.  I took three hits before getting away, leaving me with very low heath at the end of this play session.\n\n\n",
      "summary": "As I was gathering resources with Lucy, minding my own business ** I got hit with an attack from a Clockwork Bishop, man these things hit hard and have really good aim. I took three hits before getting away, leaving me with very low heath at the end of this play session.",
      "image": "https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4",
      "date_published": "2025-02-15T09:40:05Z",
      "date_modified": "2025-02-15T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/fragmention/",
      "url": "https://waylonwalker.com/fragmention/",
      "title": "fragmention",
      "content_html": "\u003cp\u003eThis post is still WIP. …..\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://indieweb.org/fragmention##Challenges\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/indieweb.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/indieweb.org.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://indieweb.org/fragmention##Challenges\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI’ve been digging through David Bushell’s blog over the past day, he has some\nreally good ideas about blogging and webdev.  One really interesting post I\ncame accross is\n\u003ca href=\"https://dbushell.com/2024/12/05/url-fragment-text-directives/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dbushell.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dbushell.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eurl-fragment-text-directives\u003c/a\u003e.\nI’ve long had id’s linked on my headings, though sometimes broken, or now\nshowing the link, I’ve done my best to include them.  Fragmentions extend this\nto allow any text to be linkable like this.\u003c/p\u003e\n\u003cp\u003efragmentioner ui: \u003ca href=\"https://github.com/kartikprabhu/fragmentioner/tree/master?tab=readme-ov-file\" 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\"\u003ehttps://github.com/kartikprabhu/fragmentioner/tree/master?tab=readme-ov-file\u003c/a\u003e\nfragmentioner js: \u003ca href=\"https://github.com/chapmanu/fragmentions\" 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\"\u003ehttps://github.com/chapmanu/fragmentions\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"examples\"\u003eExamples \u003ca href=\"#examples\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://resilientwebdesign.com/#This%20is%20a%20web%20book\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/resilientwebdesign.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/resilientwebdesign.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://resilientwebdesign.com/#This%20is%20a%20web%20book\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nThis post is still WIP. .....\n\n\u003chttps://indieweb.org/fragmention##Challenges\u003e\n\nI've been digging through David Bushell's blog over the past day, he has some\nreally good ideas about blogging and webdev.  One really interesting post I\ncame accross is\n[url-fragment-text-directives](https://dbushell.com/2024/12/05/url-fragment-text-directives/).\nI've long had id's linked on my headings, though sometimes broken, or now\nshowing the link, I've done my best to include them.  Fragmentions extend this\nto allow any text to be linkable like this.\n\nfragmentioner ui: \u003chttps://github.com/kartikprabhu/fragmentioner/tree/master?tab=readme-ov-file\u003e\nfragmentioner js: \u003chttps://github.com/chapmanu/fragmentions\u003e\n\n## Examples\n\n\u003chttps://resilientwebdesign.com/#This%20is%20a%20web%20book\u003e\n",
      "summary": "This post is still WIP. .....",
      "date_published": "2025-02-15T09:32:43Z",
      "date_modified": "2025-02-15T09:32:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "indieweb",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/newlines-in-css-before/",
      "url": "https://waylonwalker.com/newlines-in-css-before/",
      "title": "newlines in css before",
      "content_html": "\u003cp\u003eI’m building in a [[ fragmentions ]] implementation into my blog, I wanted to\nadd some text before the fragment to indidate that it was the highlighted\nfragment that someone may have intended to share with you.\u003c/p\u003e\n\u003cp\u003eTo get a newline in a \u003ccode\u003e:before\u003c/code\u003e I need to use \u003ccode\u003e\\A\u003c/code\u003e and \u003ccode\u003ewhite-space: pre-line\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ebody\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nd\"\u003etarget\u003c/span\u003e\u003cspan class=\"p\"\u003e::\u003c/span\u003e\u003cspan class=\"nd\"\u003ebefore\u003c/span\u003e\u003cspan class=\"o\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ebody\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003e\u003cspan class=\"nt\"\u003efragmention\u003c/span\u003e\u003cspan class=\"o\"\u003e]\u003c/span\u003e\u003cspan class=\"p\"\u003e::\u003c/span\u003e\u003cspan class=\"nd\"\u003ebefore\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Highlighted Fragment:\\A\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ewhite-space\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003epre-line\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"err\"\u003e@apply\u003c/span\u003e \u003cspan class=\"err\"\u003efont-bold\u003c/span\u003e \u003cspan class=\"err\"\u003etext-yellow-600\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is what it looks like on my not yet live implementation of fragmentions.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fb693b92-3744-45a5-9220-bd914162f435.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-15T15-43-06-372Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/fb693b92-3744-45a5-9220-bd914162f435.png\" alt=\"screenshot-2025-02-15T15-43-06-372Z.png\"/ data-glightbox=\"description: screenshot-2025-02-15T15-43-06-372Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI'm building in a [[ fragmentions ]] implementation into my blog, I wanted to\nadd some text before the fragment to indidate that it was the highlighted\nfragment that someone may have intended to share with you.\n\nTo get a newline in a `:before` I need to use `\\A` and `white-space: pre-line`.\n\n``` css\nbody :target::before,\nbody [fragmention]::before {\n    content: \"Highlighted Fragment:\\A\";\n    white-space: pre-line;\n    @apply font-bold text-yellow-600;\n}\n```\n\nHere is what it looks like on my not yet live implementation of fragmentions.\n\n![screenshot-2025-02-15T15-43-06-372Z.png](https://dropper.waylonwalker.com/api/file/fb693b92-3744-45a5-9220-bd914162f435.png)\n",
      "summary": "I'm building in a fragmentions implementation into my blog, I wanted to add some text before the fragment to indidate that it was the highlighted fragment...",
      "date_published": "2025-02-15T09:28:48Z",
      "date_modified": "2025-02-15T09:28:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/bigskysoftware-fixi/",
      "url": "https://waylonwalker.com/bigskysoftware-fixi/",
      "title": "⭐ bigskysoftware fixi",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/bigskysoftware/fixi\" 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\"\u003efixi\u003c/a\u003e by \u003ca href=\"https://github.com/bigskysoftware\" 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\"\u003ebigskysoftware\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eNo description available.\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [fixi](https://github.com/bigskysoftware/fixi) by [bigskysoftware](https://github.com/bigskysoftware), and it's truly impressive.\n\nNo description available.\n",
      "summary": "I recently discovered fixi by bigskysoftware, and it's truly impressive.",
      "date_published": "2025-02-15T00:21:48Z",
      "date_modified": "2025-02-15T00:21:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-559/",
      "url": "https://waylonwalker.com/thought-559/",
      "title": "💭 Chris Coyier",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2024/03/03/11148/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJpbWciOiJodHRwczpcL1wvY2hyaXNjb3lpZXIubmV0XC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wM1wvcGV4ZWxzLXBob3RvLTUzMTg0NC0xMDI0eDY4Mi5qcGVnIiwidHh0IjoiaSBkaWRuJ3Qgc2F5IHRoZSBzb2NpYWwgbWVkaWEgaW1hZ2Ugd291bGRuJ3QgaGF2ZSBhIHRpdGxlIiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.K_WGOGYYuB2MeV23x0ID9j-vWYGGnqJ5WyhhpwdZuBQMQ\" alt=\"— I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…\" loading=\"lazy\"/ data-glightbox=\"description: — I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e \u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier · chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eInteresting thoughts here on blog post titles, do we need them?  They are so ingrained into everything.\u003c/p\u003e\n\u003cp\u003eIt makes me think about markata.dev.  I don’t require you to add any meta data to your post, you don’t need a title at all, but you do have to name a markdown file, and this does end up being your title if you don’t set one.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eTitles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook, Threads, LinkedIn, Bluesky, etc.) don’t have titles. Especially for short posts, the title just isn’t necessary. Just say the thing.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eInteresting observation what rss readers do without one.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eMy own favorite[rss reader], Feedbin, shows the author of the post as the title if it’s missing. Eh, not great not horrible.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eHilariously he puts a title on the \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eOG\u003c/a\u003e image for the post.  I was interested in seeing what would happen in signal, it appears to be showing the author name as well.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ea78bda4-d2ea-41bd-9a60-27d9b09d4825.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ea78bda4-d2ea-41bd-9a60-27d9b09d4825.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eConfirmed the page has no title\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4a68af50-9880-4e1c-8fca-91313a154630.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4a68af50-9880-4e1c-8fca-91313a154630.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eor does it?\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/66a63ca2-c705-4460-8b8a-d1633fc42f21.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/66a63ca2-c705-4460-8b8a-d1633fc42f21.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIt makes me wonder where Signal gets this title is it from the title block or the site_name meta data\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2024/03/03/11148/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJpbWciOiJodHRwczpcL1wvY2hyaXNjb3lpZXIubmV0XC93cC1jb250ZW50XC91cGxvYWRzXC8yMDI0XC8wM1wvcGV4ZWxzLXBob3RvLTUzMTg0NC0xMDI0eDY4Mi5qcGVnIiwidHh0IjoiaSBkaWRuJ3Qgc2F5IHRoZSBzb2NpYWwgbWVkaWEgaW1hZ2Ugd291bGRuJ3QgaGF2ZSBhIHRpdGxlIiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.K_WGOGYYuB2MeV23x0ID9j-vWYGGnqJ5WyhhpwdZuBQMQ\" alt=\"— I’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e \u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI’m going to leave the title off this post and see what happens. Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier \u0026middot; chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nInteresting thoughts here on blog post titles, do we need them?  They are so ingrained into everything.\n\nIt makes me think about markata.dev.  I don't require you to add any meta data to your post, you don't need a title at all, but you do have to name a markdown file, and this does end up being your title if you don't set one.\n\n\u003e Titles are a lot of pressure! I think there is a reason that the big text-based social networking sites (Mastodon, X, Facebook, Threads, LinkedIn, Bluesky, etc.) don’t have titles. Especially for short posts, the title just isn’t necessary. Just say the thing.\n\nInteresting observation what rss readers do without one.\n\n\u003eMy own favorite[rss reader], Feedbin, shows the author of the post as the title if it’s missing. Eh, not great not horrible.\n\nHilariously he puts a title on the OG image for the post.  I was interested in seeing what would happen in signal, it appears to be showing the author name as well.\n\n![image](https://dropper.waylonwalker.com/api/file/ea78bda4-d2ea-41bd-9a60-27d9b09d4825.webp)\n\nConfirmed the page has no title \n\n![image](https://dropper.waylonwalker.com/api/file/4a68af50-9880-4e1c-8fca-91313a154630.webp)\n\nor does it?\n\n![image](https://dropper.waylonwalker.com/api/file/66a63ca2-c705-4460-8b8a-d1633fc42f21.webp)\n\nIt makes me wonder where Signal gets this title is it from the title block or the site_name meta data\n\n\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://chriscoyier.net/2024/03/03/11148/",
      "date_published": "2025-02-14T19:40:19Z",
      "date_modified": "2025-02-14T19:40:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-558/",
      "url": "https://waylonwalker.com/thought-558/",
      "title": "💭 AI workloads on Talos Linux - Sidero Labs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.siderolabs.com/blog/ai-workloads-on-talos-linux/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.siderolabs.com/site-assets/uploads/2025/02/ai-workloads-banner.webp\" alt=\"AI workloads on Talos Linux - Sidero Labs — Companies are exploring how to run GPU accelerated workloads on Kubernetes. It doesn’t matter if you have a business use case for AI or not, knowing how it works is important.\" loading=\"lazy\"/ data-glightbox=\"description: AI workloads on Talos Linux - Sidero Labs — Companies are exploring how to run GPU accelerated workloads on Kubernetes. It doesn’t matter if you have a business use case for AI or not, knowing how it works is important.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAI workloads on Talos Linux - Sidero Labs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eCompanies are exploring how to run GPU accelerated workloads on Kubernetes. It doesn’t matter if you have a business use case for AI or not, knowing how it works is important.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esiderolabs.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003ecool article for setting up talos linux with an nvidia gpu.  What a wild world it we are living in where these devices that started out being only for hardcore gamers are becoming commonplace in servers and slowly entering the \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e space.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.siderolabs.com/blog/ai-workloads-on-talos-linux/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.siderolabs.com/site-assets/uploads/2025/02/ai-workloads-banner.webp\" alt=\"AI workloads on Talos Linux - Sidero Labs — Companies are exploring how to run GPU accelerated workloads on Kubernetes. It doesn’t matter if you have a business use case for AI or not, knowing how it works is important.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAI workloads on Talos Linux - Sidero Labs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eCompanies are exploring how to run GPU accelerated workloads on Kubernetes. It doesn’t matter if you have a business use case for AI or not, knowing how it works is important.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003esiderolabs.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ncool article for setting up talos linux with an nvidia gpu.  What a wild world it we are living in where these devices that started out being only for hardcore gamers are becoming commonplace in servers and slowly entering the homelab space.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.siderolabs.com/blog/ai-workloads-on-talos-linux/",
      "date_published": "2025-02-14T19:27:54Z",
      "date_modified": "2025-02-14T19:27:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-557/",
      "url": "https://waylonwalker.com/thought-557/",
      "title": "💭 Proompted Kiddies Learning The Hard Way - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"eNIBie_uYMI\" title=\"Proompted Kiddies Learning The Hard Way\" playlabel=\"Play: Proompted Kiddies Learning The Hard Way\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn prime makes an interesting point near then end of this video.  He’s seen a bunch of people able to just throw down charts and shit at their company and end up being “the coding guy” cause they proompted something once.  In a way I can relate, I got into software in a similar way, but at a time that it took a lot more hard work, understanding , and copy past from the right stack overflow.   Based on some of the people around me at the time I can only imagine how some people must feel like they got pushed into it without wanting it, and now are building something they don’t know anything about with no care about it or care to build any expertise.  Is the future proompted charts from enterprise chatgpt or do we only continue growing more need for software from here.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d43265cd-7fe1-4cb4-a22e-d82a37a2e368.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d43265cd-7fe1-4cb4-a22e-d82a37a2e368.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"eNIBie_uYMI\" title=\"Proompted Kiddies Learning The Hard Way\" playlabel=\"Play: Proompted Kiddies Learning The Hard Way\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDamn prime makes an interesting point near then end of this video.  He's seen a bunch of people able to just throw down charts and shit at their company and end up being \"the coding guy\" cause they proompted something once.  In a way I can relate, I got into software in a similar way, but at a time that it took a lot more hard work, understanding , and copy past from the right stack overflow.   Based on some of the people around me at the time I can only imagine how some people must feel like they got pushed into it without wanting it, and now are building something they don't know anything about with no care about it or care to build any expertise.  Is the future proompted charts from enterprise chatgpt or do we only continue growing more need for software from here.\n\n\n![image](https://dropper.waylonwalker.com/api/file/d43265cd-7fe1-4cb4-a22e-d82a37a2e368.webp)\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=eNIBie_uYMI",
      "date_published": "2025-02-14T19:15:41Z",
      "date_modified": "2025-02-14T19:15:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "catalytic",
        "dev",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/duckdb-pg_duckdb/",
      "url": "https://waylonwalker.com/duckdb-pg_duckdb/",
      "title": "⭐ duckdb pg_duckdb",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/duckdb\" 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\"\u003educkdb’s\u003c/a\u003e project \u003ca href=\"https://github.com/duckdb/pg_duckdb\" 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\"\u003epg_duckdb\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eDuckDB-powered Postgres for high performance apps \u0026amp; analytics.\u003c/p\u003e\n",
      "content_text": "\nI like [duckdb's](https://github.com/duckdb) project [pg_duckdb](https://github.com/duckdb/pg_duckdb).\n\nDuckDB-powered Postgres for high performance apps \u0026 analytics.\n",
      "summary": "I like duckdb's project pg_duckdb.",
      "date_published": "2025-02-14T13:56:38Z",
      "date_modified": "2025-02-14T13:56:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/medialab-xan/",
      "url": "https://waylonwalker.com/medialab-xan/",
      "title": "⭐ medialab xan",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/medialab/xan\" 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\"\u003exan\u003c/a\u003e by \u003ca href=\"https://github.com/medialab\" 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\"\u003emedialab\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eThe CSV magician\u003c/p\u003e\n",
      "content_text": "\nJust starred [xan](https://github.com/medialab/xan) by [medialab](https://github.com/medialab). It's an exciting project with a lot to offer.\n\nThe CSV magician\n",
      "summary": "Just starred xan by medialab. It's an exciting project with a lot to offer.",
      "date_published": "2025-02-14T13:56:21Z",
      "date_modified": "2025-02-14T13:56:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/johnwarne-upvote-rss/",
      "url": "https://waylonwalker.com/johnwarne-upvote-rss/",
      "title": "⭐ johnwarne upvote-rss",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/johnwarne/upvote-rss\" 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\"\u003eupvote-rss\u003c/a\u003e from \u003ca href=\"https://github.com/johnwarne\" 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\"\u003ejohnwarne\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eGenerate rich RSS feeds from Reddit, Hacker News, and Lemmy\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [upvote-rss](https://github.com/johnwarne/upvote-rss) from [johnwarne](https://github.com/johnwarne).\n\nGenerate rich RSS feeds from Reddit, Hacker News, and Lemmy\n",
      "summary": "I'm impressed by upvote-rss from johnwarne.",
      "date_published": "2025-02-14T13:54:30Z",
      "date_modified": "2025-02-14T13:54:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one---getting-a-hat/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one---getting-a-hat/",
      "title": "Dont Starve Together Session One - Getting A Hat",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together session one - Getting a Hat\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4\" type=\"video/mp4\"\u003eDont Starve Together session one - Getting a Hat\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI had the grass for a hat, so I figured why not.  I’m not sure if  it really helps this time of year, but I thought it looked good on Woodie.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together session one - Getting a Hat](https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4)\n\n\u003e I had the grass for a hat, so I figured why not.  I'm not sure if  it really helps this time of year, but I thought it looked good on Woodie.\n\n\n",
      "summary": "I had the grass for a hat, so I figured why not. I'm not sure if it really helps this time of year, but I thought it looked good on Woodie.",
      "image": "https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4",
      "date_published": "2025-02-14T09:40:05Z",
      "date_modified": "2025-02-14T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/caniszczyk-rugpulls-dev/",
      "url": "https://waylonwalker.com/caniszczyk-rugpulls-dev/",
      "title": "⭐ caniszczyk rugpulls.dev",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/caniszczyk/rugpulls.dev\" 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\"\u003erugpulls.dev\u003c/a\u003e by \u003ca href=\"https://github.com/caniszczyk\" 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\"\u003ecaniszczyk\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNo description available.\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [rugpulls.dev](https://github.com/caniszczyk/rugpulls.dev) by [caniszczyk](https://github.com/caniszczyk).\n\nNo description available.\n",
      "summary": "Looking for inspiration? rugpulls.dev by caniszczyk.",
      "date_published": "2025-02-13T17:15:44Z",
      "date_modified": "2025-02-13T17:15:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/fosrl-pangolin/",
      "url": "https://waylonwalker.com/fosrl-pangolin/",
      "title": "⭐ fosrl pangolin",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/fosrl/pangolin\" 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\"\u003epangolin\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/fosrl\" 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\"\u003efosrl\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eTunneled Mesh Reverse Proxy Server with Identity and Access Control and Dashboard UI\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [pangolin](https://github.com/fosrl/pangolin), an amazing project by [fosrl](https://github.com/fosrl). It's worth exploring!\n\nTunneled Mesh Reverse Proxy Server with Identity and Access Control and Dashboard UI\n",
      "summary": "I'm really excited about pangolin, an amazing project by fosrl. It's worth exploring!",
      "date_published": "2025-02-13T17:14:43Z",
      "date_modified": "2025-02-13T17:14:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/prazzon-flexbox-labs/",
      "url": "https://waylonwalker.com/prazzon-flexbox-labs/",
      "title": "⭐ prazzon Flexbox-Labs",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/prazzon/Flexbox-Labs\" 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\"\u003eFlexbox-Labs\u003c/a\u003e by \u003ca href=\"https://github.com/prazzon\" 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\"\u003eprazzon\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA web app for creating flexible layouts with the power of CSS Flexbox.\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [Flexbox-Labs](https://github.com/prazzon/Flexbox-Labs) by [prazzon](https://github.com/prazzon).\n\nA web app for creating flexible layouts with the power of CSS Flexbox.\n",
      "summary": "Looking for inspiration? Flexbox-Labs by prazzon.",
      "date_published": "2025-02-13T17:12:58Z",
      "date_modified": "2025-02-13T17:12:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/vagos-llm-sort/",
      "url": "https://waylonwalker.com/vagos-llm-sort/",
      "title": "⭐ vagos llm-sort",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/vagos/llm-sort\" 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\"\u003ellm-sort\u003c/a\u003e by \u003ca href=\"https://github.com/vagos\" 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\"\u003evagos\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eSort input lines semantically with llm\u003c/p\u003e\n",
      "content_text": "\nCheck out [llm-sort](https://github.com/vagos/llm-sort) by [vagos](https://github.com/vagos). It's a well-crafted project with great potential.\n\nSort input lines semantically with llm\n",
      "summary": "Check out llm-sort by vagos. It's a well-crafted project with great potential.",
      "date_published": "2025-02-13T17:10:55Z",
      "date_modified": "2025-02-13T17:10:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one---opening-up-the-garden/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one---opening-up-the-garden/",
      "title": "Dont Starve Together Session One - Opening Up The Garden",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together session one - Opening up the Garden\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4\" type=\"video/mp4\"\u003eDont Starve Together session one - Opening up the Garden\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eOn day two I had enough materials gathered to make the garden digamajig to prep the soil for gardening.  I planted the few seeds that I stole from the birds right away.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together session one - Opening up the Garden](https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4)\n\n\u003e On day two I had enough materials gathered to make the garden digamajig to prep the soil for gardening.  I planted the few seeds that I stole from the birds right away.\n\n\n",
      "summary": "On day two I had enough materials gathered to make the garden digamajig to prep the soil for gardening. I planted the few seeds that I stole from the birds right away.",
      "image": "https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4",
      "date_published": "2025-02-13T09:40:05Z",
      "date_modified": "2025-02-13T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/fixed-long-standing-nvim-startup-error/",
      "url": "https://waylonwalker.com/fixed-long-standing-nvim-startup-error/",
      "title": "fixed long standing nvim startup error",
      "content_html": "\u003cp\u003eHere’s the diff, this is it.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  local M = {}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.setup = require(\u0026#34;waylonwalker.setup\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.settings = require(\u0026#34;waylonwalker.settings\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ M.lazy = require(\u0026#34;waylonwalker.lazy\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.options = require(\u0026#34;waylonwalker.options\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.globals = require(\u0026#34;waylonwalker.globals\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.keymap = require(\u0026#34;waylonwalker.keymap\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- M.lazy = require(\u0026#34;waylonwalker.lazy\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.autocmds = require(\u0026#34;waylonwalker.autocmds\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.util = require(\u0026#34;waylonwalker.util\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.plugins = require(\u0026#34;waylonwalker.plugins\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.snippets = require(\u0026#34;waylonwalker.snippets\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  return M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-error\"\u003eThe error \u003ca href=\"#the-error\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOn first install of my dotfiles I’m presenting with this flashbang of an error\nfilling the screen with red background.  Its kinda hard to read, I’m not deep\ninto lua and reading their tracebacks.  It pops up in this pager that if I\nscroll too far it quits and the error is gone before I know what it is or how\nit got there.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/20eafd2f-fbcd-4f93-8bd9-541edf42fba4.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/20eafd2f-fbcd-4f93-8bd9-541edf42fba4.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eFor the longest time it just felt like it randomly showed up without much warning.\u003c/p\u003e\n\u003ch2 id=\"i-sent-ai-at-the-issue\"\u003eI sent ai at the issue \u003ca href=\"#i-sent-ai-at-the-issue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI tried some chatgpt and windsurf, both gave me overconfident answers that all\ndid nothing.  They just sent me in loops for way too long.\u003c/p\u003e\n\u003ch2 id=\"i-fixed-it\"\u003eI fixed it \u003ca href=\"#i-fixed-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWhat did it take??\u003c/p\u003e\n\u003cp\u003eJust sitting down and thinking about what the problem was and setting up a good\ntest workflow.  Yesterday I worked out \u003ca href=\"/testing-nvim-installs/\" class=\"wikilink\" data-title=\"testing nvim installs\" data-description=\"Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I\u0026#39;ve been using to run a test nvim in a sandbox that wont...\" data-date=\"2025-02-12\" data-preview=\"Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I\u0026#39;ve been using to run a test nvim in a sandbox that wont...\"\u003etesting nvim installs\u003c/a\u003e and I was\nimmediately able to replicate the error over and over.  Unlike before where it\nfelt random, I now have a good problem statement that I can replicate.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eclean install\u003c/li\u003e\n\u003cli\u003estart nvim\u003c/li\u003e\n\u003cli\u003eLazy pops up\u003c/li\u003e\n\u003cli\u003eFLASHBANG!! Error that treesitter is not installed\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat was confusing for so long was that treesitter was the first thing in lazy,\nand it appeared that lazy was running before the error.\u003c/p\u003e\n\u003ch2 id=\"the-fix\"\u003eThe fix \u003ca href=\"#the-fix\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOnce I really thought about \u003cpackage\u003e not installed, it clicked.  It must be\nthe order of operations. I popped open my \u003ccode\u003einit.lua\u003c/code\u003e and there it was, lazy\nrunning after things that use treesitter.  A little \u003cspan class=\"keys\"\u003e\u003ckbd class=\"kbd\"\u003ed\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ed\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ek\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ek\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ek\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ek\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ek\u003c/kbd\u003e\u003cspan class=\"key-separator\"\u003e+\u003c/span\u003e\u003ckbd class=\"kbd\"\u003ep\u003c/kbd\u003e\u003c/span\u003e and it\nwas fixed. running \u003ccode\u003ejust testnvim\u003c/code\u003e the next time there was no flashbang!\u003c/package\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  local M = {}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.setup = require(\u0026#34;waylonwalker.setup\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.settings = require(\u0026#34;waylonwalker.settings\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ M.lazy = require(\u0026#34;waylonwalker.lazy\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.options = require(\u0026#34;waylonwalker.options\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.globals = require(\u0026#34;waylonwalker.globals\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.keymap = require(\u0026#34;waylonwalker.keymap\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- M.lazy = require(\u0026#34;waylonwalker.lazy\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.autocmds = require(\u0026#34;waylonwalker.autocmds\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.util = require(\u0026#34;waylonwalker.util\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.plugins = require(\u0026#34;waylonwalker.plugins\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  M.snippets = require(\u0026#34;waylonwalker.snippets\u0026#34;)\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  return M\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nHere's the diff, this is it.\n\n``` diff\n  local M = {}\n\n\n  M.setup = require(\"waylonwalker.setup\")\n  M.settings = require(\"waylonwalker.settings\")\n+ M.lazy = require(\"waylonwalker.lazy\")\n  M.options = require(\"waylonwalker.options\")\n  M.globals = require(\"waylonwalker.globals\")\n  M.keymap = require(\"waylonwalker.keymap\")\n- M.lazy = require(\"waylonwalker.lazy\")\n  M.autocmds = require(\"waylonwalker.autocmds\")\n  M.util = require(\"waylonwalker.util\")\n  M.plugins = require(\"waylonwalker.plugins\")\n  M.snippets = require(\"waylonwalker.snippets\")\n\n  return M\n\n```\n\n## The error\n\nOn first install of my dotfiles I'm presenting with this flashbang of an error\nfilling the screen with red background.  Its kinda hard to read, I'm not deep\ninto lua and reading their tracebacks.  It pops up in this pager that if I\nscroll too far it quits and the error is gone before I know what it is or how\nit got there.\n\n![image](https://dropper.waylonwalker.com/api/file/20eafd2f-fbcd-4f93-8bd9-541edf42fba4.webp)\n\nFor the longest time it just felt like it randomly showed up without much warning.\n\n## I sent ai at the issue\n\nI tried some chatgpt and windsurf, both gave me overconfident answers that all\ndid nothing.  They just sent me in loops for way too long.\n\n## I fixed it\n\nWhat did it take??\n\nJust sitting down and thinking about what the problem was and setting up a good\ntest workflow.  Yesterday I worked out \u003ca href=\"/testing-nvim-installs/\" class=\"wikilink\" data-title=\"testing nvim installs\" data-description=\"Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I\u0026#39;ve been using to run a test nvim in a sandbox that wont...\" data-date=\"2025-02-12\"\u003etesting nvim installs\u003c/a\u003e and I was\nimmediately able to replicate the error over and over.  Unlike before where it\nfelt random, I now have a good problem statement that I can replicate.\n\n* clean install\n* start nvim\n* Lazy pops up\n* FLASHBANG!! Error that treesitter is not installed\n\nWhat was confusing for so long was that treesitter was the first thing in lazy,\nand it appeared that lazy was running before the error.\n\n## The fix\n\nOnce I really thought about \u003cpackage\u003e not installed, it clicked.  It must be\nthe order of operations. I popped open my `init.lua` and there it was, lazy\nrunning after things that use treesitter.  A little ++d+d+k+k+k+k+k+p++ and it\nwas fixed. running `just testnvim` the next time there was no flashbang!\n\n``` diff\n  local M = {}\n\n\n  M.setup = require(\"waylonwalker.setup\")\n  M.settings = require(\"waylonwalker.settings\")\n+ M.lazy = require(\"waylonwalker.lazy\")\n  M.options = require(\"waylonwalker.options\")\n  M.globals = require(\"waylonwalker.globals\")\n  M.keymap = require(\"waylonwalker.keymap\")\n- M.lazy = require(\"waylonwalker.lazy\")\n  M.autocmds = require(\"waylonwalker.autocmds\")\n  M.util = require(\"waylonwalker.util\")\n  M.plugins = require(\"waylonwalker.plugins\")\n  M.snippets = require(\"waylonwalker.snippets\")\n\n  return M\n\n```\n",
      "summary": "Here's the diff, this is it.",
      "date_published": "2025-02-13T08:41:39Z",
      "date_modified": "2025-02-13T08:41:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "vim"
      ]
    },
    {
      "id": "https://waylonwalker.com/testing-nvim-installs/",
      "url": "https://waylonwalker.com/testing-nvim-installs/",
      "title": "testing nvim installs",
      "content_html": "\u003cp\u003eTesting fresh nvim installs can be a pain, and hard to di without borking your\nknown good install.  I’ve been using \u003ccode\u003eNVIM_APPNAME\u003c/code\u003e to run a test nvim in a\nsandbox that wont bork my main install.  This usually runs for me in under a\nminute, can be down under 15s if I remove some of the TreeSitter installs at\nthe end.  This beats a full docker build of my full devtainer to test out nvim\npackaging woes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm ~/.cache/wwtest -rf\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm ~/.local/share/wwtest -rf\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003erm ~/.config/wwtest -rf\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecp -r nvim/.config/nvim/ ~/.config/wwtest\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ewwtest nvim --headless \u003cspan class=\"s2\"\u003e\u0026#34;+Lazy sync\u0026#34;\u003c/span\u003e +qa\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ewwtest nvim --headless \u003cspan class=\"s2\"\u003e\u0026#34;+TSUpdateSync\u0026#34;\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;+sleep 5000m\u0026#34;\u003c/span\u003e +qa\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ewwtest nvim --headless \u003cspan class=\"s2\"\u003e\u0026#34;+MasonUpdate\u0026#34;\u003c/span\u003e +qa\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ewwtest nvim --headless \u003cspan class=\"s2\"\u003e\u0026#34;+TSInstallSync! c cpp go lua python rust tsx javascript typescript vimdoc vim bash yaml toml vue just\u0026#34;\u003c/span\u003e +qa\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ewwtest nvim --headless \u003cspan class=\"s2\"\u003e\u0026#34;+MasonInstall lua-language-server rustywind ruff ruff-lsp html-lsp typescript-language-server beautysh fixjson isort markdownlint stylua yamlfmt python-lsp-server\u0026#34;\u003c/span\u003e +qa\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ewwtest nvim\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI’ve started to use this as a \u003ccode\u003ejust\u003c/code\u003e recipe to run before deploying a new\nversion of my dotfiles. So far its pairing nicely with \u003ca href=\"/nvim-manager/\" class=\"wikilink\" data-title=\"nvim-manager\" data-description=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\" data-date=\"2025-01-12\" data-preview=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\"\u003envim-manager\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nTesting fresh nvim installs can be a pain, and hard to di without borking your\nknown good install.  I've been using `NVIM_APPNAME` to run a test nvim in a\nsandbox that wont bork my main install.  This usually runs for me in under a\nminute, can be down under 15s if I remove some of the TreeSitter installs at\nthe end.  This beats a full docker build of my full devtainer to test out nvim\npackaging woes.\n\n``` bash\nrm ~/.cache/wwtest -rf\nrm ~/.local/share/wwtest -rf\nrm ~/.config/wwtest -rf\ncp -r nvim/.config/nvim/ ~/.config/wwtest\nNVIM_APPNAME=wwtest nvim --headless \"+Lazy sync\" +qa\nNVIM_APPNAME=wwtest nvim --headless \"+TSUpdateSync\" \"+sleep 5000m\" +qa\nNVIM_APPNAME=wwtest nvim --headless \"+MasonUpdate\" +qa\nNVIM_APPNAME=wwtest nvim --headless \"+TSInstallSync! c cpp go lua python rust tsx javascript typescript vimdoc vim bash yaml toml vue just\" +qa\nNVIM_APPNAME=wwtest nvim --headless \"+MasonInstall lua-language-server rustywind ruff ruff-lsp html-lsp typescript-language-server beautysh fixjson isort markdownlint stylua yamlfmt python-lsp-server\" +qa\nNVIM_APPNAME=wwtest nvim\n```\n\nI've started to use this as a `just` recipe to run before deploying a new\nversion of my dotfiles. So far its pairing nicely with \u003ca href=\"/nvim-manager/\" class=\"wikilink\" data-title=\"nvim-manager\" data-description=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\" data-date=\"2025-01-12\"\u003envim-manager\u003c/a\u003e\n",
      "summary": "Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I've been using to run a test nvim in a sandbox that wont...",
      "date_published": "2025-02-12T21:02:03Z",
      "date_modified": "2025-02-12T21:02:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "just",
        "neovim"
      ]
    },
    {
      "id": "https://waylonwalker.com/setting-up-4g-backup-with-google-fi-and-netgear-lm1200/",
      "url": "https://waylonwalker.com/setting-up-4g-backup-with-google-fi-and-netgear-lm1200/",
      "title": "Setting up 4G Backup with Google Fi and Netgear LM1200",
      "content_html": "\u003cp\u003eI connected my home network to have 4G bakcup with Google Fi and Netgear\nLM1200.  Goodle Fi offers free data-only sim cards that you can order from\ntheir service.  It takes a couple of days, and a new sim arrives in the mail\nfree of charge.  It does pull data from your account, so if you are not on an\nunlimited plan be careful of how much you let go through the sim.\u003c/p\u003e\n\u003cp\u003eI’ve owned this for a few years now, but it’s been disconnected for a good six\nmonths or so.  I’m not s[e what happened, but it stopped recognizing the old\nsim card. \u003cem\u003eno need to point out the coffee stains at the end, its\n\u003cstrong\u003edefinitely\u003c/strong\u003e not related\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"follow-the-provided-instuctions\"\u003eFollow the provided instuctions \u003ca href=\"#follow-the-provided-instuctions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eActivating the sim asked for a confirmation code shipped with the sim card,\nthen brought me to this page.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ec4d4272-7f61-4cf7-b3f5-ed2a57d0c11b.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-24-38-431Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ec4d4272-7f61-4cf7-b3f5-ed2a57d0c11b.png\" alt=\"screenshot-2025-02-11T19-24-38-431Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-24-38-431Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eClicking \u003ccode\u003eHave a Different Device?\u003c/code\u003e brought up instructions to set up the APN in the LM1200.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b54d9a7f-c768-45b8-bf90-e692a6525788.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-14-39-662Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b54d9a7f-c768-45b8-bf90-e692a6525788.png\" alt=\"screenshot-2025-02-11T19-14-39-662Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-14-39-662Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"restart\"\u003eRestart \u003ca href=\"#restart\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst thing for me was that the sim was not recognized, restarting the LM1200\ndid the trick to recognize it as a Google Fi sim, and I started setting up by\nadding the APN as instructed from Google.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9f10f86d-734a-4b6f-a1f6-1bed27c5db13.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-22-55-062Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9f10f86d-734a-4b6f-a1f6-1bed27c5db13.png\" alt=\"screenshot-2025-02-11T19-22-55-062Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-22-55-062Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"setup-lm1200\"\u003eSetup LM1200 \u003ca href=\"#setup-lm1200\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOnce restarted the LM1200 was recognize the sim right away and I was able to\nadd the APN details.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4c9b0dde-69ce-4d73-af89-06d32c70c9d3.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-21-24-608Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4c9b0dde-69ce-4d73-af89-06d32c70c9d3.png\" alt=\"screenshot-2025-02-11T19-21-24-608Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-21-24-608Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"connected\"\u003eConnected \u003ca href=\"#connected\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter Saving these I was immediately connected as a backup.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/eb224d5a-6332-49e7-bde5-9f67c19d090f.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-22-13-849Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/eb224d5a-6332-49e7-bde5-9f67c19d090f.png\" alt=\"screenshot-2025-02-11T19-22-13-849Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-22-13-849Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"testing-failover\"\u003eTesting Failover \u003ca href=\"#testing-failover\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBackups do not exist without testing.  I pulled the WAN cable from the LM1200\nand after a few seconds it swapped over to the backup.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3fe17ab6-0fa6-4aa9-96d9-0d7ef6d191c0.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-45-00-555Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3fe17ab6-0fa6-4aa9-96d9-0d7ef6d191c0.png\" alt=\"screenshot-2025-02-11T19-45-00-555Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-45-00-555Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe dashboard shows fully connected, and it popped up that it sent an alert to\nmy phone, but that did not work for me.  I might hae something misconfigured.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0229f36a-0b6b-4699-97c4-d526096c77fb.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-36-08-431Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0229f36a-0b6b-4699-97c4-d526096c77fb.png\" alt=\"screenshot-2025-02-11T19-36-08-431Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-36-08-431Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI ran a speed test and got a pretty respectable 38 Mbit/s up and 12 Mbit/s down.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/83647660-cf04-422b-a0f3-8b860c6585e1.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-54-49-024Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/83647660-cf04-422b-a0f3-8b860c6585e1.png\" alt=\"screenshot-2025-02-11T19-54-49-024Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-54-49-024Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI reconnected the WAN cable and it went back to the primary, and it sat at\norange for about 10 seconds before switching back to wired connection.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e6c0f5fe-ec2c-4546-aaa1-d5e2fba0ae0c.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-45-31-516Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e6c0f5fe-ec2c-4546-aaa1-d5e2fba0ae0c.png\" alt=\"screenshot-2025-02-11T19-45-31-516Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-45-31-516Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eFully back on wired.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/70f9fd2b-9611-466a-a07b-11525e2a7aaa.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-11T19-47-13-699Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/70f9fd2b-9611-466a-a07b-11525e2a7aaa.png\" alt=\"screenshot-2025-02-11T19-47-13-699Z.png\"/ data-glightbox=\"description: screenshot-2025-02-11T19-47-13-699Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eNow its all back up and running giving me a super cheap 4G backup with pretty\nlow effort.  Hopefully its reliable, I’ve upgraded about everything else on my\nnetwork since last running this, I think it will behave much better.  I think\nsome other issues were actually causing me to think I was not getting\nconnection and this fully got pulled from the network to try to fix it.\u003c/p\u003e\n\u003ch2 id=\"why-not-5g\"\u003eWhy not 5G? \u003ca href=\"#why-not-5g\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe devices are way more expensive and this gives me all I need for a backup.\u003c/p\u003e\n",
      "content_text": "\nI connected my home network to have 4G bakcup with Google Fi and Netgear\nLM1200.  Goodle Fi offers free data-only sim cards that you can order from\ntheir service.  It takes a couple of days, and a new sim arrives in the mail\nfree of charge.  It does pull data from your account, so if you are not on an\nunlimited plan be careful of how much you let go through the sim.\n\nI've owned this for a few years now, but it's been disconnected for a good six\nmonths or so.  I'm not s[e what happened, but it stopped recognizing the old\nsim card. _no need to point out the coffee stains at the end, its\n**definitely** not related_\n\n## Follow the provided instuctions\n\nActivating the sim asked for a confirmation code shipped with the sim card,\nthen brought me to this page.\n\n![screenshot-2025-02-11T19-24-38-431Z.png](https://dropper.waylonwalker.com/api/file/ec4d4272-7f61-4cf7-b3f5-ed2a57d0c11b.png)\n\nClicking `Have a Different Device?` brought up instructions to set up the APN in the LM1200.\n\n![screenshot-2025-02-11T19-14-39-662Z.png](https://dropper.waylonwalker.com/api/file/b54d9a7f-c768-45b8-bf90-e692a6525788.png)\n\n## Restart\n\nFirst thing for me was that the sim was not recognized, restarting the LM1200\ndid the trick to recognize it as a Google Fi sim, and I started setting up by\nadding the APN as instructed from Google.\n\n![screenshot-2025-02-11T19-22-55-062Z.png](https://dropper.waylonwalker.com/api/file/9f10f86d-734a-4b6f-a1f6-1bed27c5db13.png)\n\n## Setup LM1200\n\nOnce restarted the LM1200 was recognize the sim right away and I was able to\nadd the APN details.\n\n![screenshot-2025-02-11T19-21-24-608Z.png](https://dropper.waylonwalker.com/api/file/4c9b0dde-69ce-4d73-af89-06d32c70c9d3.png)\n\n## Connected\n\nAfter Saving these I was immediately connected as a backup.\n\n![screenshot-2025-02-11T19-22-13-849Z.png](https://dropper.waylonwalker.com/api/file/eb224d5a-6332-49e7-bde5-9f67c19d090f.png)\n\n## Testing Failover\n\nBackups do not exist without testing.  I pulled the WAN cable from the LM1200\nand after a few seconds it swapped over to the backup.\n\n![screenshot-2025-02-11T19-45-00-555Z.png](https://dropper.waylonwalker.com/api/file/3fe17ab6-0fa6-4aa9-96d9-0d7ef6d191c0.png)\n\nThe dashboard shows fully connected, and it popped up that it sent an alert to\nmy phone, but that did not work for me.  I might hae something misconfigured.\n\n![screenshot-2025-02-11T19-36-08-431Z.png](https://dropper.waylonwalker.com/api/file/0229f36a-0b6b-4699-97c4-d526096c77fb.png)\n\nI ran a speed test and got a pretty respectable 38 Mbit/s up and 12 Mbit/s down.\n\n![screenshot-2025-02-11T19-54-49-024Z.png](https://dropper.waylonwalker.com/api/file/83647660-cf04-422b-a0f3-8b860c6585e1.png)\n\nI reconnected the WAN cable and it went back to the primary, and it sat at\norange for about 10 seconds before switching back to wired connection.\n\n![screenshot-2025-02-11T19-45-31-516Z.png](https://dropper.waylonwalker.com/api/file/e6c0f5fe-ec2c-4546-aaa1-d5e2fba0ae0c.png)\n\nFully back on wired.\n\n![screenshot-2025-02-11T19-47-13-699Z.png](https://dropper.waylonwalker.com/api/file/70f9fd2b-9611-466a-a07b-11525e2a7aaa.png)\n\nNow its all back up and running giving me a super cheap 4G backup with pretty\nlow effort.  Hopefully its reliable, I've upgraded about everything else on my\nnetwork since last running this, I think it will behave much better.  I think\nsome other issues were actually causing me to think I was not getting\nconnection and this fully got pulled from the network to try to fix it.\n\n## Why not 5G?\n\nThe devices are way more expensive and this gives me all I need for a backup.\n",
      "summary": "I connected my home network to have 4G bakcup with Google Fi and Netgear LM1200. Goodle Fi offers free data-only sim cards that you can order from their...",
      "date_published": "2025-02-12T13:23:35Z",
      "date_modified": "2025-02-12T13:23:35Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab"
      ]
    },
    {
      "id": "https://waylonwalker.com/ahrefs-cleanup-2024/",
      "url": "https://waylonwalker.com/ahrefs-cleanup-2024/",
      "title": "ahrefs-cleanup-2024",
      "content_html": "\u003cp\u003eThis post is a big work in progress, expect it to keep getting better.\u003c/p\u003e\n\u003ch2 id=\"initial-score\"\u003eInitial Score \u003ca href=\"#initial-score\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b26d4352-1bce-43a1-942e-bd6d7bd7c11d.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b26d4352-1bce-43a1-942e-bd6d7bd7c11d.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"404-not-found-generate-a-page-for-each-tag\"\u003e404 Not Found, generate a page for each tag \u003ca href=\"#404-not-found-generate-a-page-for-each-tag\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c501e0f7-b3c1-4124-b6b4-727d7e3e95a8.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c501e0f7-b3c1-4124-b6b4-727d7e3e95a8.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"title-too-long\"\u003eTitle too long \u003ca href=\"#title-too-long\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4184948f-3527-4a17-8c65-b61e75d9ec75.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4184948f-3527-4a17-8c65-b61e75d9ec75.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"404-not-found-comma-separated-tags\"\u003e404 Not Found, comma separated tags \u003ca href=\"#404-not-found-comma-separated-tags\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnother hit on 404’s caused by tags, was tag parsing from thoughts into posts,\nthis cause links to the full comma separated list of tags rather than one per\ntag.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c01ebd69-5ac4-4d9b-b720-43a16f64f421.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c01ebd69-5ac4-4d9b-b720-43a16f64f421.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eYou can see on the website the whole dang set of tags was being treated as a single tag.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/398b3bc7-8cfe-4190-968d-73eb15e18ea2.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/398b3bc7-8cfe-4190-968d-73eb15e18ea2.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"broken-images\"\u003eBroken images \u003ca href=\"#broken-images\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m not fully sure what happened to all of these gifs in my old host and why\nthey didn’t show up, but I moved them all and they are solid now.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b3a1e8de-9344-40b4-8020-9e75a59b5dd9.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-15T17-31-20-430Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b3a1e8de-9344-40b4-8020-9e75a59b5dd9.png\" alt=\"screenshot-2025-01-15T17-31-20-430Z.png\"/ data-glightbox=\"description: screenshot-2025-01-15T17-31-20-430Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"i-burned-all-of-my-january-credits\"\u003eI burned all of my January Credits \u003ca href=\"#i-burned-all-of-my-january-credits\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo I had an issue with my \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e shots not making them fast enough for\nahrefs, and essentially ddosing myself on one of their runs.  The long wait\ntimes for images burnt all of my credits.\u003c/p\u003e\n\u003cp\u003eHere was the next successful run with a HUGE improvement in overall score.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/cfed3e97-8dd4-4381-b38f-5dc6f40e7fad.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/cfed3e97-8dd4-4381-b38f-5dc6f40e7fad.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe trend for errors is looking quite good.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/1ffbd8f7-1f81-40b9-b110-1b0f03bdd56f.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/1ffbd8f7-1f81-40b9-b110-1b0f03bdd56f.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"md-files-were-missing\"\u003emd files were Missing \u003ca href=\"#md-files-were-missing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI had several links out to the raw source of some pages generally hosted at\n\u003ccode\u003e{slug}.md\u003c/code\u003e, but I had turned it off due to it causing builds to fail.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/db074f86-725a-4b34-a5e2-8424628f521e.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/db074f86-725a-4b34-a5e2-8424628f521e.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eTaking another look at the error it was obvious what was going on, thoughts\nnever had a file extension and Pathlib was throwing isADirecotryError because\nthe path was already a directory for the index.\u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e, adding a .md to the path\nfor the thoughts plugin fixed it.\u003c/p\u003e\n\u003cp\u003eI made this fix in commit\n\u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/e0bbc777efd5d0309a107b0d3e7355b2426e8c47\" 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\"\u003ee0bbc\u003c/a\u003e\non my site repo.\u003c/p\u003e\n\u003ch2 id=\"broken-links-to-tags\"\u003eBroken links to tags \u003ca href=\"#broken-links-to-tags\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI wrote a cli plugin to automatically generate feeds for my tags, but I have\nnot ran it in awhile so I had a number of posts trying to link tags to feeds\nthat did not exist.  I fixed this in commit\n[5d2e22](\u003ca href=\"https://github.com/WaylonWalker/waylonwalker.com/commit/5d2e227a03acb1104e4214507872c61ae2a47d64\" 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\"\u003ehttps://github.com/WaylonWalker/waylonwalker.com/commit/5d2e227a03acb1104e4214507872c61ae2a47d64\u003c/a\u003e].\u003c/p\u003e\n\u003ch2 id=\"fix-open-graph-url-not-matching-canonical\"\u003efix: Open Graph URL not matching canonical \u003ca href=\"#fix-open-graph-url-not-matching-canonical\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e[[ thoughts-565 ]] fixes an error introduced while fixing \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e tags.\u003c/p\u003e\n",
      "content_text": "\nThis post is a big work in progress, expect it to keep getting better.\n\n## Initial Score\n\n![image](https://dropper.waylonwalker.com/api/file/b26d4352-1bce-43a1-942e-bd6d7bd7c11d.webp)\n\n## 404 Not Found, generate a page for each tag\n\n![image](https://dropper.waylonwalker.com/api/file/c501e0f7-b3c1-4124-b6b4-727d7e3e95a8.webp)\n\n## Title too long\n\n![image](https://dropper.waylonwalker.com/api/file/4184948f-3527-4a17-8c65-b61e75d9ec75.webp)\n\n## 404 Not Found, comma separated tags\n\nAnother hit on 404's caused by tags, was tag parsing from thoughts into posts,\nthis cause links to the full comma separated list of tags rather than one per\ntag.\n\n![image](https://dropper.waylonwalker.com/api/file/c01ebd69-5ac4-4d9b-b720-43a16f64f421.webp)\n\nYou can see on the website the whole dang set of tags was being treated as a single tag.\n\n![image](https://dropper.waylonwalker.com/api/file/398b3bc7-8cfe-4190-968d-73eb15e18ea2.webp)\n\n## Broken images\n\nI'm not fully sure what happened to all of these gifs in my old host and why\nthey didn't show up, but I moved them all and they are solid now.\n\n![screenshot-2025-01-15T17-31-20-430Z.png](https://dropper.waylonwalker.com/api/file/b3a1e8de-9344-40b4-8020-9e75a59b5dd9.png)\n\n## I burned all of my January Credits\n\nSo I had an issue with my self hosted shots not making them fast enough for\nahrefs, and essentially ddosing myself on one of their runs.  The long wait\ntimes for images burnt all of my credits.\n\nHere was the next successful run with a HUGE improvement in overall score.\n\n![image](https://dropper.waylonwalker.com/api/file/cfed3e97-8dd4-4381-b38f-5dc6f40e7fad.webp)\n\nThe trend for errors is looking quite good.\n\n![image](https://dropper.waylonwalker.com/api/file/1ffbd8f7-1f81-40b9-b110-1b0f03bdd56f.webp)\n\n## md files were Missing\n\nI had several links out to the raw source of some pages generally hosted at\n`{slug}.md`, but I had turned it off due to it causing builds to fail.\n\n![image](https://dropper.waylonwalker.com/api/file/db074f86-725a-4b34-a5e2-8424628f521e.webp)\n\nTaking another look at the error it was obvious what was going on, thoughts\nnever had a file extension and Pathlib was throwing isADirecotryError because\nthe path was already a directory for the index.html, adding a .md to the path\nfor the thoughts plugin fixed it.\n\nI made this fix in commit\n[e0bbc](https://github.com/WaylonWalker/waylonwalker.com/commit/e0bbc777efd5d0309a107b0d3e7355b2426e8c47)\non my site repo.\n\n## Broken links to tags\n\nI wrote a cli plugin to automatically generate feeds for my tags, but I have\nnot ran it in awhile so I had a number of posts trying to link tags to feeds\nthat did not exist.  I fixed this in commit\n[5d2e22](\u003chttps://github.com/WaylonWalker/waylonwalker.com/commit/5d2e227a03acb1104e4214507872c61ae2a47d64\u003e].\n\n## fix: Open Graph URL not matching canonical\n\n[[ thoughts-565 ]] fixes an error introduced while fixing og tags.\n",
      "summary": "This post is a big work in progress, expect it to keep getting better.",
      "date_published": "2025-02-12T12:56:40Z",
      "date_modified": "2025-02-12T12:56:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ahrefs",
        "blog",
        "meta"
      ]
    },
    {
      "id": "https://waylonwalker.com/vim-date/",
      "url": "https://waylonwalker.com/vim-date/",
      "title": "vim date",
      "content_html": "\u003cp\u003eWhen I want to put a date in a document like a blog post from vim I use !!date\nfrom insert mode.  Note that entering \u003ccode\u003e!!\u003c/code\u003e from normal mode puts you in command\nmode with \u003ccode\u003e:.!\u003c/code\u003e filled out.  This runs a shell command, i.e. \u003ccode\u003edate\u003c/code\u003e for this\nexample.\u003c/p\u003e\n\u003cp\u003eIt outputs the following\u003c/p\u003e\n\u003cp\u003eFri Jan 31 08:46:11 PM CST 2025\u003c/p\u003e\n\u003cp\u003eYou can also pass in a date such as tommorrow by pasdding in the -d \u003ccode\u003edate -d tomorrow\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eIt outputs the following\u003c/p\u003e\n\u003cp\u003eSat Feb  1 08:53:20 PM CST 2025\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ecodeium just taught me this one with autocomplete\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nx\"\u003eput\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"nx\"\u003estrftime\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;%Y-%m-%d\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis outputs the following\u003c/p\u003e\n\u003cp\u003e2025-01-31\u003c/p\u003e\n\u003cp\u003eWhat I like about the \u003ccode\u003e:put =strftime(\u003c/code\u003e method is that you can add a format,\nbut that is a lot more for me to remember than \u003ccode\u003e!!date\u003c/code\u003e\u003c/p\u003e\n\u003ch2 id=\"a-few-weeks-later\"\u003eA few weeks later \u003ca href=\"#a-few-weeks-later\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’m going through a bunch of blog posts and dont want my date formats to change\nto the Wed Feb format so I broke down and made these keybindings.  I think I’m\nstill going to be using \u003ccode\u003e.!date\u003c/code\u003e a lot, but these keybindings will be nice for\nediting blog post frontmatter.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;n\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;leader\u0026gt;dd\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;cmd\u0026gt;put =strftime(\u0026#39;%Y-%m-%d\u0026#39;)\u0026lt;cr\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003enoremap\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esilent\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e \u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eset\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;n\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;leader\u0026gt;dt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;cmd\u0026gt;put =strftime(\u0026#39;%Y-%m-%d %H:%M:%S\u0026#39;)\u0026lt;cr\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e \u003cspan class=\"n\"\u003enoremap\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003esilent\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e \u003cspan class=\"p\"\u003e})\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003cleader\u003edd 2025-02-12\u003c/leader\u003e\u003c/li\u003e\n\u003cli\u003e\u003cleader\u003edt 2025-02-12 12:53:47\u003c/leader\u003e\u003c/li\u003e\n\u003cli\u003e:.!date    Wed Feb 12 12:53:47 PM CST 2025\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n\nWhen I want to put a date in a document like a blog post from vim I use !!date\nfrom insert mode.  Note that entering `!!` from normal mode puts you in command\nmode with `:.!` filled out.  This runs a shell command, i.e. `date` for this\nexample.\n\nIt outputs the following\n\nFri Jan 31 08:46:11 PM CST 2025\n\nYou can also pass in a date such as tommorrow by pasdding in the -d `date -d tomorrow`.\n\nIt outputs the following\n\nSat Feb  1 08:53:20 PM CST 2025\n\n\u003e codeium just taught me this one with autocomplete\n\n``` vim\n:put =strftime('%Y-%m-%d')\n```\n\nThis outputs the following\n\n2025-01-31\n\nWhat I like about the `:put =strftime(` method is that you can add a format,\nbut that is a lot more for me to remember than `!!date`\n\n## A few weeks later\n\nI'm going through a bunch of blog posts and dont want my date formats to change\nto the Wed Feb format so I broke down and made these keybindings.  I think I'm\nstill going to be using `.!date` a lot, but these keybindings will be nice for\nediting blog post frontmatter.\n\n``` lua\nset(\"n\", \"\u003cleader\u003edd\", \"\u003ccmd\u003eput =strftime('%Y-%m-%d')\u003ccr\u003e\", { noremap = true, silent = true })\nset(\"n\", \"\u003cleader\u003edt\", \"\u003ccmd\u003eput =strftime('%Y-%m-%d %H:%M:%S')\u003ccr\u003e\", { noremap = true, silent = true })\n```\n\n* \u003cleader\u003edd 2025-02-12\n* \u003cleader\u003edt 2025-02-12 12:53:47\n* :.!date    Wed Feb 12 12:53:47 PM CST 2025\n",
      "summary": "When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering from normal mode puts you in command mode...",
      "date_published": "2025-02-12T12:51:00Z",
      "date_modified": "2025-02-12T12:51:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "vim"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one---setting-up-base/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one---setting-up-base/",
      "title": "Dont Starve Together Session One - Setting Up Base",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together session one - setting up base\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4\" type=\"video/mp4\"\u003eDont Starve Together session one - setting up base\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eJust after the first night started I found my way back to the center of the map and made a stone campfire.  I really like to use the stone campfires as they last forever, you just have to add wood.  I was lucky enough to find stone by the Tall Bird to make this one on first day.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together session one - setting up base](https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4)\n\n\u003e Just after the first night started I found my way back to the center of the map and made a stone campfire.  I really like to use the stone campfires as they last forever, you just have to add wood.  I was lucky enough to find stone by the Tall Bird to make this one on first day.\n\n\n",
      "summary": "Just after the first night started I found my way back to the center of the map and made a stone campfire. I really like to use the stone campfires as they last forever, you just have to add wood. I was lucky enough to find stone by the Tall Bird to make this one on first day.",
      "image": "https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4",
      "date_published": "2025-02-12T09:40:05Z",
      "date_modified": "2025-02-12T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/digitalharbor7-engineering-status-pages/",
      "url": "https://waylonwalker.com/digitalharbor7-engineering-status-pages/",
      "title": "⭐ DigitalHarbor7 engineering-status-pages",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/DigitalHarbor7\" 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\"\u003eDigitalHarbor7’s\u003c/a\u003e project \u003ca href=\"https://github.com/DigitalHarbor7/engineering-status-pages\" 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\"\u003eengineering-status-pages\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eStatic sites for engineering project status updates\u003c/p\u003e\n",
      "content_text": "\nI like [DigitalHarbor7's](https://github.com/DigitalHarbor7) project [engineering-status-pages](https://github.com/DigitalHarbor7/engineering-status-pages).\n\nStatic sites for engineering project status updates\n",
      "summary": "I like DigitalHarbor7's project engineering-status-pages.",
      "date_published": "2025-02-12T03:19:59Z",
      "date_modified": "2025-02-12T03:19:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/aptitude-why/",
      "url": "https://waylonwalker.com/aptitude-why/",
      "title": "aptitude why",
      "content_html": "\u003cp\u003eToday I ran into an interesting question, why am I being asked to configure\ntzdata while installing npm.  Turns out that the \u003ccode\u003eaptitude\u003c/code\u003e cli has a why\ncommand that very handily nails down why you have something installed on a\ndebian based system.\u003c/p\u003e\n\u003ch2 id=\"install-aptitude\"\u003eInstall aptitude \u003ca href=\"#install-aptitude\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install aptitude\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"why-tzdata\"\u003eWhy tzdata \u003ca href=\"#why-tzdata\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow we can query why we need tzdata and see the full chain with the root\npackage being \u003ccode\u003enpm\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot@47685221fb82:/# aptitude why tzdata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei   npm        Depends  node-gyp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A node-gyp   Depends  gyp \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u0026gt;\u003cspan class=\"o\"\u003e=\u003c/span\u003e 0.1+20200513gitcaa6002\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A gyp        Depends  python3:any\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A python3    Provides python3:any\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A python3    Depends  python3.12 \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u0026gt;\u003cspan class=\"o\"\u003e=\u003c/span\u003e 3.12.3-0~\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A python3.12 Depends  tzdata\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I ran into an interesting question, why am I being asked to configure\ntzdata while installing npm.  Turns out that the `aptitude` cli has a why\ncommand that very handily nails down why you have something installed on a\ndebian based system.\n\n## Install aptitude\n\n``` bash\napt install aptitude\n```\n\n## Why tzdata\n\nNow we can query why we need tzdata and see the full chain with the root\npackage being `npm`.\n\n``` bash\nroot@47685221fb82:/# aptitude why tzdata\ni   npm        Depends  node-gyp\ni A node-gyp   Depends  gyp (\u003e= 0.1+20200513gitcaa6002)\ni A gyp        Depends  python3:any\ni A python3    Provides python3:any\ni A python3    Depends  python3.12 (\u003e= 3.12.3-0~)\ni A python3.12 Depends  tzdata\n```\n",
      "summary": "Today I ran into an interesting question, why am I being asked to configure tzdata while installing npm. Turns out that the cli has a why command that very...",
      "date_published": "2025-02-11T13:55:04Z",
      "date_modified": "2025-02-11T13:55:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/first-encounter-with-a-tall-bird/",
      "url": "https://waylonwalker.com/shots/first-encounter-with-a-tall-bird/",
      "title": "Dont Starve Together Session One - First Encounter With A Tall Bird",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4\" class=\"glightbox-link\" aria-label=\"First encounter with a Tall Bird\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4\" type=\"video/mp4\"\u003eFirst encounter with a Tall Bird\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eOn the first day I made a look around my home biome, and ran into a Tall Bird\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![First encounter with a Tall Bird](https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4)\n\n\u003e On the first day I made a look around my home biome, and ran into a Tall Bird\n\n",
      "summary": "On the first day I made a look around my home biome, and ran into a Tall Bird",
      "image": "https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4",
      "date_published": "2025-02-11T09:40:05Z",
      "date_modified": "2025-02-11T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/configure-tz/",
      "url": "https://waylonwalker.com/configure-tz/",
      "title": "configure timezone",
      "content_html": "\u003cp\u003eToday I ran into this interactive prompt on ubuntu while installing node and\nnpm, and I do not want to manually configure this interactively every time I\nrun an install, moreso in docker I do not have the interactive terminal to do\nso.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eConfiguring tzdata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e------------------\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePlease \u003cspan class=\"k\"\u003eselect\u003c/span\u003e the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the \u003cspan class=\"nb\"\u003etime\u003c/span\u003e zones in which they are located.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  1. Africa  2. America  3. Antarctica  4. Arctic  5. Asia  6. Atlantic  7. Australia  8. Europe  9. Indian  10. Pacific  11. Etc  12. Legacy\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGeographic area:\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"why-tzdata\"\u003eWhy tzdata \u003ca href=\"#why-tzdata\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eChecking aptitude why tzdata it shows that the chain goes back through npm.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eroot@47685221fb82:/# aptitude why tzdata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei   npm        Depends  node-gyp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A node-gyp   Depends  gyp \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u0026gt;\u003cspan class=\"o\"\u003e=\u003c/span\u003e 0.1+20200513gitcaa6002\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A gyp        Depends  python3:any\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A python3    Provides python3:any\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A python3    Depends  python3.12 \u003cspan class=\"o\"\u003e(\u003c/span\u003e\u0026gt;\u003cspan class=\"o\"\u003e=\u003c/span\u003e 3.12.3-0~\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ei A python3.12 Depends  tzdata\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-solution-configure-tzdata\"\u003eThe solution, configure tzdata \u003ca href=\"#the-solution-configure-tzdata\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eTZ\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;America/Chicago\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eDEBIAN_FRONTEND\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003enoninteractive\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install tzdata -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -fs /usr/share/zoneinfo/\u003cspan class=\"nv\"\u003e$TZ\u003c/span\u003e /etc/localtime\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edpkg-reconfigure -f noninteractive tzdata\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition tip\"\u003e\n\u003cp class=\"admonition-title\"\u003eDEBIAN_FRONTEND=noninteractive\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThis is required, because apt installing tzdata will trigger the\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003einteractive prompt.  You will manually configure it in the next two steps.\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\nToday I ran into this interactive prompt on ubuntu while installing node and\nnpm, and I do not want to manually configure this interactively every time I\nrun an install, moreso in docker I do not have the interactive terminal to do\nso.\n\n``` bash\nConfiguring tzdata\n------------------\n\nPlease select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.\n\n  1. Africa  2. America  3. Antarctica  4. Arctic  5. Asia  6. Atlantic  7. Australia  8. Europe  9. Indian  10. Pacific  11. Etc  12. Legacy\nGeographic area:\n```\n\n## Why tzdata\n\nChecking aptitude why tzdata it shows that the chain goes back through npm.\n\n``` bash\nroot@47685221fb82:/# aptitude why tzdata\ni   npm        Depends  node-gyp\ni A node-gyp   Depends  gyp (\u003e= 0.1+20200513gitcaa6002)\ni A gyp        Depends  python3:any\ni A python3    Provides python3:any\ni A python3    Depends  python3.12 (\u003e= 3.12.3-0~)\ni A python3.12 Depends  tzdata\n```\n\n## The solution, configure tzdata\n\n``` bash\nexport TZ=\"America/Chicago\"\nexport DEBIAN_FRONTEND=noninteractive\napt update\napt install tzdata -y\nln -fs /usr/share/zoneinfo/$TZ /etc/localtime\ndpkg-reconfigure -f noninteractive tzdata\n```\n\n!!! TIP DEBIAN_FRONTEND=noninteractive\n    This is required, because apt installing tzdata will trigger the\n    interactive prompt.  You will manually configure it in the next two steps.\n",
      "summary": "Today I ran into this interactive prompt on ubuntu while installing node and npm, and I do not want to manually configure this interactively every time I run...",
      "date_published": "2025-02-10T13:35:24Z",
      "date_modified": "2025-02-10T13:35:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/shots/dont-starve-together-session-one-start/",
      "url": "https://waylonwalker.com/shots/dont-starve-together-session-one-start/",
      "title": "Dont Starve Together Session One Start",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4\" class=\"glightbox-link\" aria-label=\"Dont Starve Together Session One Start\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4\" type=\"video/mp4\"\u003eDont Starve Together Session One Start\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI always select the character \u003cem\u003eWoodie\u003c/em\u003e.  He comes with an axe called \u003cem\u003eLucy\u003c/em\u003e she has some dark humor (but not too dark), I like her.  She also does not wear out so you always have a weapon and way to chop wood with you.\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\n![Dont Starve Together Session One Start](https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4)\n\n\u003e I always select the character _Woodie_.  He comes with an axe called _Lucy_ she has some dark humor (but not too dark), I like her.  She also does not wear out so you always have a weapon and way to chop wood with you.\n\n\n",
      "summary": "I always select the character _. He comes with an axe called _ she has some dark humor (but not too dark), I like her. She also does not wear out so you always have a weapon and way to chop wood with you.",
      "image": "https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4",
      "date_published": "2025-02-10T09:40:05Z",
      "date_modified": "2025-02-10T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "shots"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-556/",
      "url": "https://waylonwalker.com/thought-556/",
      "title": "💭 Colors - Core concepts - Tailwind CSS",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tailwindcss.com/docs/colors\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://tailwindcss.com/api/og?path=/docs/colors\" alt=\"Colors - Core concepts — Using and customizing the color palette in Tailwind CSS projects.\" loading=\"lazy\"/ data-glightbox=\"description: Colors - Core concepts — Using and customizing the color palette in Tailwind CSS projects.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eColors - Core concepts\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUsing and customizing the color palette in Tailwind CSS projects.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etailwindcss.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eTailwind has the best color system, very well done.  Even if you don’t use it, it serves as a great color picker.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tailwindcss.com/docs/colors\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://tailwindcss.com/api/og?path=/docs/colors\" alt=\"Colors - Core concepts — Using and customizing the color palette in Tailwind CSS projects.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eColors - Core concepts\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUsing and customizing the color palette in Tailwind CSS projects.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003etailwindcss.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nTailwind has the best color system, very well done.  Even if you don't use it, it serves as a great color picker.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://tailwindcss.com/docs/colors",
      "date_published": "2025-02-09T21:32:57Z",
      "date_modified": "2025-02-09T21:32:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-555/",
      "url": "https://waylonwalker.com/thought-555/",
      "title": "💭 Don't Starve Together Forever world",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://wyattbubbylee.com/dst-forever-world/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ewyattbubbylee.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eSo proud of Wyatt for writing in his own blog!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://wyattbubbylee.com/dst-forever-world/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ewyattbubbylee.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nSo proud of Wyatt for writing in his own blog!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://wyattbubbylee.com/dst-forever-world/",
      "date_published": "2025-02-09T21:31:38Z",
      "date_modified": "2025-02-09T21:31:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/dst-session-one/",
      "url": "https://waylonwalker.com/dst-session-one/",
      "title": "dst session one",
      "content_html": "\u003cp\u003eWyatt is also documenting his run, while we aren’t playing in the same world we\nare playing together.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://wyattbubbylee.com/dst-forever-world/\"\u003ehttps://wyattbubbylee.com/dst-forever-world/\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"loading-into-the-world\"\u003eLoading into the world \u003ca href=\"#loading-into-the-world\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI always select the character \u003cem\u003eWoodie\u003c/em\u003e.  He comes with an axe called \u003cem\u003eLucy\u003c/em\u003e she\nhas some dark humor (but not too dark), I like her.  She also does not wear out\nso you always have a weapon and way to chop wood with you.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4\" class=\"glightbox-link\" aria-label=\"dst-1-1.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4\" type=\"video/mp4\"\u003edst-1-1.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"first-encounter-with-a-tall-bird\"\u003eFirst encounter with a Tall Bird \u003ca href=\"#first-encounter-with-a-tall-bird\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOn the first day I made a look around my home biome, and ran into a Tall Bird\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4\" class=\"glightbox-link\" aria-label=\"dst-1-2.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4\" type=\"video/mp4\"\u003edst-1-2.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"tall-bird-stats\"\u003eTall Bird Stats \u003ca href=\"#tall-bird-stats\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9d18495d-300b-4719-8bf6-13408ad507f1.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9d18495d-300b-4719-8bf6-13408ad507f1.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere are the tall bird stats from the \u003ca href=\"https://dontstarve.fandom.com/wiki/Tallbird\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dontstarve.fandom.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dontstarve.fandom.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ewiki\u003c/a\u003e\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"setting-up-base\"\u003eSetting up base \u003ca href=\"#setting-up-base\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eJust after the first night started I found my way back to the center of the map\nand made a stone campfire.  I really like to use the stone campfires as they\nlast forever, you just have to add wood.  I was lucky enough to find stone by\nthe Tall Bird to make this one on first day.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4\" class=\"glightbox-link\" aria-label=\"dst-1-3.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4\" type=\"video/mp4\"\u003edst-1-3.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"opening-up-the-garden\"\u003eOpening up the garden \u003ca href=\"#opening-up-the-garden\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOn day two I had enough materials gathered to make the garden digamajig to prep\nthe soil for gardening.  I planted the few seeds that I stole from the birds\nright away.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4\" class=\"glightbox-link\" aria-label=\"dst-1-4.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4\" type=\"video/mp4\"\u003edst-1-4.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"getting-a-hat\"\u003eGetting a hat \u003ca href=\"#getting-a-hat\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI had the grass for a hat, so I figured why not.  I’m not sure if  it really\nhelps this time of year, but I thought it looked good on Woodie.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4\" class=\"glightbox-link\" aria-label=\"dst-1-5.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4\" type=\"video/mp4\"\u003edst-1-5.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"getting-into-it-with-a-clockwork-bishop\"\u003eGetting into it with a Clockwork Bishop \u003ca href=\"#getting-into-it-with-a-clockwork-bishop\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs I was gathering resources with Lucy, minding my own business \u003cstrong\u003eBAM\u003c/strong\u003e I got\nhit with an attack from a Clockwork Bishop, man these things hit hard and have\nreally good aim.  I took three hits before getting away, leaving me with very\nlow heath at the end of this play session.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4\" class=\"glightbox-link\" aria-label=\"dst-1-6.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4\" type=\"video/mp4\"\u003edst-1-6.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/805aadc7-9dff-44ee-8640-8f8ec1d21de8.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/805aadc7-9dff-44ee-8640-8f8ec1d21de8.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere is the clockwork bishop stats from the \u003ca href=\"https://dontstarve.fandom.com/wiki/Clockwork_Bishop\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dontstarve.fandom.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dontstarve.fandom.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ewiki\u003c/a\u003e\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"session-two\"\u003eSession Two \u003ca href=\"#session-two\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTo kick off the second session, I noticed that when you have a torch you can\nlight your cooking pot, what I did not realize was that this burns your cooking\npot to smitherines.  Nothing left but a frame of \u003cstrong\u003euseless\u003c/strong\u003e ashes.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4\" class=\"glightbox-link\" aria-label=\"dst-2-1.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4\" type=\"video/mp4\"\u003edst-2-1.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"the-treeguard\"\u003eThe TreeGuard \u003ca href=\"#the-treeguard\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter that terrible mistake I was off with Lucy collecting wood when I awoken\nthe \u003ca href=\"https://dontstarve.fandom.com/wiki/Treeguard\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dontstarve.fandom.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dontstarve.fandom.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eTreeGuard\u003c/a\u003e.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f12b162b-c1be-431d-91ae-a8559490befe.mp4\" class=\"glightbox-link\" aria-label=\"dst-2-2.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/f12b162b-c1be-431d-91ae-a8559490befe.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/f12b162b-c1be-431d-91ae-a8559490befe.mp4\" type=\"video/mp4\"\u003edst-2-2.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/61712606-6aeb-43b1-bea0-5f879d52345b.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/61712606-6aeb-43b1-bea0-5f879d52345b.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThe dude is slow, has terrible aim, but he is so persistent.  No matter how far\nyou get away he just shows up trying to kill you.\u003c/p\u003e\n\u003cp\u003eI needed to get my cooking pot back, so the next step was to get charcoal.  So\nwhile I was collecting charcoal I did my best to try to take down the TreeGuard\nby burning him.  But to no avail, he lives on.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9c8b4b37-beb4-41e3-b264-388811eb8f62.mp4\" class=\"glightbox-link\" aria-label=\"dst-2-3.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/9c8b4b37-beb4-41e3-b264-388811eb8f62.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/9c8b4b37-beb4-41e3-b264-388811eb8f62.mp4\" type=\"video/mp4\"\u003edst-2-3.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eOnce back at camp with my new cooking pot, he snuck up on me with his gigantic\nsluggish form, one wrong keystroke on mybehalf and I walked straight into his\nattack and I was done for.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/510c8290-01b1-4350-b668-ac8ca53cf6c1.mp4\" class=\"glightbox-link\" aria-label=\"dst-2-4.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/510c8290-01b1-4350-b668-ac8ca53cf6c1.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/510c8290-01b1-4350-b668-ac8ca53cf6c1.mp4\" type=\"video/mp4\"\u003edst-2-4.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAfter that embarrasing death I made my way over to a touchstone I found and\nWoodie is back from the dead, but without his beloved Lucy, to get her we will\nneed to go\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4\" class=\"glightbox-link\" aria-label=\"dst-2-5.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4\" type=\"video/mp4\"\u003edst-2-5.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nWyatt is also documenting his run, while we aren't playing in the same world we\nare playing together.\n\n\u003chttps://wyattbubbylee.com/dst-forever-world/\u003e\n\n## Loading into the world\n\nI always select the character _Woodie_.  He comes with an axe called _Lucy_ she\nhas some dark humor (but not too dark), I like her.  She also does not wear out\nso you always have a weapon and way to chop wood with you.\n\n![dst-1-1.mp4](https://dropper.waylonwalker.com/api/file/4408f5bd-4f20-4e88-8d0f-599155c5637c.mp4)\n\n## First encounter with a Tall Bird\n\nOn the first day I made a look around my home biome, and ran into a Tall Bird\n\n![dst-1-2.mp4](https://dropper.waylonwalker.com/api/file/8bb62b1c-4a0f-4660-9f54-1c4ad04b28cf.mp4)\n\n## Tall Bird Stats\n\n![image](https://dropper.waylonwalker.com/api/file/9d18495d-300b-4719-8bf6-13408ad507f1.webp)\n\n\u003e Here are the tall bird stats from the [wiki](https://dontstarve.fandom.com/wiki/Tallbird)\n\n## Setting up base\n\nJust after the first night started I found my way back to the center of the map\nand made a stone campfire.  I really like to use the stone campfires as they\nlast forever, you just have to add wood.  I was lucky enough to find stone by\nthe Tall Bird to make this one on first day.\n\n![dst-1-3.mp4](https://dropper.waylonwalker.com/api/file/f6d07c07-1d0a-40c9-9930-36c1e48aa69e.mp4)\n\n## Opening up the garden\n\nOn day two I had enough materials gathered to make the garden digamajig to prep\nthe soil for gardening.  I planted the few seeds that I stole from the birds\nright away.\n\n![dst-1-4.mp4](https://dropper.waylonwalker.com/api/file/43e6e5db-4750-4a32-8f53-652fbd7ffaf7.mp4)\n\n## Getting a hat\n\nI had the grass for a hat, so I figured why not.  I'm not sure if  it really\nhelps this time of year, but I thought it looked good on Woodie.\n\n![dst-1-5.mp4](https://dropper.waylonwalker.com/api/file/813977e6-f954-43e8-882d-82afb66814d6.mp4)\n\n## Getting into it with a Clockwork Bishop\n\nAs I was gathering resources with Lucy, minding my own business **BAM** I got\nhit with an attack from a Clockwork Bishop, man these things hit hard and have\nreally good aim.  I took three hits before getting away, leaving me with very\nlow heath at the end of this play session.\n\n![dst-1-6.mp4](https://dropper.waylonwalker.com/api/file/36f4e4b8-16ee-4183-8de3-c2f96edd36e2.mp4)\n\n![image](https://dropper.waylonwalker.com/api/file/805aadc7-9dff-44ee-8640-8f8ec1d21de8.webp)\n\n\u003e Here is the clockwork bishop stats from the [wiki](https://dontstarve.fandom.com/wiki/Clockwork_Bishop)\n\n## Session Two\n\nTo kick off the second session, I noticed that when you have a torch you can\nlight your cooking pot, what I did not realize was that this burns your cooking\npot to smitherines.  Nothing left but a frame of **useless** ashes.\n\n![dst-2-1.mp4](https://dropper.waylonwalker.com/api/file/24fa3268-04a5-4c23-b62c-c60bfdad0084.mp4)\n\n## The TreeGuard\n\nAfter that terrible mistake I was off with Lucy collecting wood when I awoken\nthe [TreeGuard](https://dontstarve.fandom.com/wiki/Treeguard).\n\n![dst-2-2.mp4](https://dropper.waylonwalker.com/api/file/f12b162b-c1be-431d-91ae-a8559490befe.mp4)\n\n![image](https://dropper.waylonwalker.com/api/file/61712606-6aeb-43b1-bea0-5f879d52345b.webp)\n\nThe dude is slow, has terrible aim, but he is so persistent.  No matter how far\nyou get away he just shows up trying to kill you.\n\nI needed to get my cooking pot back, so the next step was to get charcoal.  So\nwhile I was collecting charcoal I did my best to try to take down the TreeGuard\nby burning him.  But to no avail, he lives on.\n\n![dst-2-3.mp4](https://dropper.waylonwalker.com/api/file/9c8b4b37-beb4-41e3-b264-388811eb8f62.mp4)\n\nOnce back at camp with my new cooking pot, he snuck up on me with his gigantic\nsluggish form, one wrong keystroke on mybehalf and I walked straight into his\nattack and I was done for.\n\n![dst-2-4.mp4](https://dropper.waylonwalker.com/api/file/510c8290-01b1-4350-b668-ac8ca53cf6c1.mp4)\n\nAfter that embarrasing death I made my way over to a touchstone I found and\nWoodie is back from the dead, but without his beloved Lucy, to get her we will\nneed to go\n\n![dst-2-5.mp4](https://dropper.waylonwalker.com/api/file/33c62075-535f-47c9-847e-3f0b0a05ec10.mp4)\n",
      "summary": "Wyatt is also documenting his run, while we aren't playing in the same world we are playing together.",
      "date_published": "2025-02-09T09:40:05Z",
      "date_modified": "2025-02-09T09:40:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-554/",
      "url": "https://waylonwalker.com/thought-554/",
      "title": "💭 Developer Productivity, v2 with ThePrimeagen | Preview - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"03KsS09YS4E\" title=\"Developer Productivity, v2 with ThePrimeagen | Preview\" playlabel=\"Play: Developer Productivity, v2 with ThePrimeagen | Preview\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eBig fan of Primes setup.  I was not far off of his setup before he really came on the scene, but I’ve picked up a ton of nuggets from him and how he operates.  I took his first developer productivity course on Front End Masters as it came out.\u003c/p\u003e\n\u003cp\u003eIt is interesting to see him roll back his ansible scripts for bash scripts here.  I converted my setup to ansible after watching his first, but have also since rolled back to bash scripts for quite similar reasons.  Ansible is great for remote tasks that need to be done on a fleet of machines, but like he says here overkill for this purpose and ends up something that you need to read the docs for every change to your dotfiles.\u003c/p\u003e\n\u003cp\u003eUnlike prime I’ve really leaned harder on installing everything in a docker image and developing out of a docker image.  I’ve long built docker images of my dotfiles with the idea that its nice to be able to just use them on other machines, but it rarely happened.\u003c/p\u003e\n\u003cp\u003eIn the past year I’ve moved bazzite, an immutable distro.  It comes with podman and distrobox, so I install very little on it, a few flatpaks from the store for brave and signal, but most of what I really use day to day comes from my devtainer.  It’s nice that I really have one install target for all of my scripts so they become quite stable.  I don’t need to worry about arch vs ubuntu vs fedora, no matter where I am its the same base image.\u003c/p\u003e\n\u003cp\u003eI’ve also really started to lean on kubernetes, it is so useful to just be able to start a pod in k8s using the same exact develop setup as I would have locally.  Nothing needs installed, I can just bring my dev setup to the cluster where the network and data I might need to debug is.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"03KsS09YS4E\" title=\"Developer Productivity, v2 with ThePrimeagen | Preview\" playlabel=\"Play: Developer Productivity, v2 with ThePrimeagen | Preview\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nBig fan of Primes setup.  I was not far off of his setup before he really came on the scene, but I've picked up a ton of nuggets from him and how he operates.  I took his first developer productivity course on Front End Masters as it came out.  \n\nIt is interesting to see him roll back his ansible scripts for bash scripts here.  I converted my setup to ansible after watching his first, but have also since rolled back to bash scripts for quite similar reasons.  Ansible is great for remote tasks that need to be done on a fleet of machines, but like he says here overkill for this purpose and ends up something that you need to read the docs for every change to your dotfiles.\n\nUnlike prime I've really leaned harder on installing everything in a docker image and developing out of a docker image.  I've long built docker images of my dotfiles with the idea that its nice to be able to just use them on other machines, but it rarely happened.  \n\nIn the past year I've moved bazzite, an immutable distro.  It comes with podman and distrobox, so I install very little on it, a few flatpaks from the store for brave and signal, but most of what I really use day to day comes from my devtainer.  It's nice that I really have one install target for all of my scripts so they become quite stable.  I don't need to worry about arch vs ubuntu vs fedora, no matter where I am its the same base image.\n\nI've also really started to lean on kubernetes, it is so useful to just be able to start a pod in k8s using the same exact develop setup as I would have locally.  Nothing needs installed, I can just bring my dev setup to the cluster where the network and data I might need to debug is.\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=03KsS09YS4E",
      "date_published": "2025-02-08T15:29:52Z",
      "date_modified": "2025-02-08T15:29:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/bc/",
      "url": "https://waylonwalker.com/bc/",
      "title": "bc",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=03KsS09YS4E\u0026amp;t=610s\" 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\"\u003ehttps://www.youtube.com/watch?v=03KsS09YS4E\u0026amp;t=610s\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eToday I learned about the basic calculator, bc.  At the very end of this video\nprime uses it to add numbers in vim.\u003c/p\u003e\n\u003ch2 id=\"repl\"\u003eREPL \u003ca href=\"#repl\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can start a calculator repl at the command line, by running bc.\u003c/p\u003e\n\u003ch2 id=\"vim\"\u003eVim \u003ca href=\"#vim\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSince bc supports standard unix pipes you can easily pipe data from vim into bc\nand back out using \u003ccode\u003e!!bc\u003c/code\u003e.  All you need is a string of math on the line you\nwant to calculate, go to normal mode and run \u003ccode\u003e!!bc\u003c/code\u003e to get the answer.\u003c/p\u003e\n\u003cp\u003eTraditionally I will open my system calculator or ipython to do something like\nthis.\u003c/p\u003e\n\u003cp\u003eTo keep the equation and the result in the same line you can send the equation\nto stderr and the result to stdout using tee.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e:.!tee \u0026gt;\u003cspan class=\"o\"\u003e(\u003c/span\u003ecat \u0026gt;\u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e2\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e bc\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n\u003chttps://www.youtube.com/watch?v=03KsS09YS4E\u0026t=610s\u003e\n\nToday I learned about the basic calculator, bc.  At the very end of this video\nprime uses it to add numbers in vim.\n\n## REPL\n\nYou can start a calculator repl at the command line, by running bc.\n\n## Vim\n\nSince bc supports standard unix pipes you can easily pipe data from vim into bc\nand back out using `!!bc`.  All you need is a string of math on the line you\nwant to calculate, go to normal mode and run `!!bc` to get the answer.\n\nTraditionally I will open my system calculator or ipython to do something like\nthis.\n\nTo keep the equation and the result in the same line you can send the equation\nto stderr and the result to stdout using tee.\n\n``` bash\n:.!tee \u003e(cat \u003e\u00262) | bc\n```\n",
      "date_published": "2025-02-08T09:30:08Z",
      "date_modified": "2025-02-08T09:30:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://waylonwalker.com/carpedm20-emoji/",
      "url": "https://waylonwalker.com/carpedm20-emoji/",
      "title": "⭐ carpedm20 emoji",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/carpedm20/emoji\" 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\"\u003eemoji\u003c/a\u003e by \u003ca href=\"https://github.com/carpedm20\" 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\"\u003ecarpedm20\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003eemoji terminal output for Python\u003c/p\u003e\n",
      "content_text": "\n[emoji](https://github.com/carpedm20/emoji) by [carpedm20](https://github.com/carpedm20) is a game-changer in its space. Excited to see how it evolves.\n\nemoji terminal output for Python\n",
      "summary": "emoji by carpedm20 is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-02-07T22:08:01Z",
      "date_modified": "2025-02-07T22:08:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/uktrade-sqlite-s3vfs/",
      "url": "https://waylonwalker.com/uktrade-sqlite-s3vfs/",
      "title": "⭐ uktrade sqlite-s3vfs",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/uktrade/sqlite-s3vfs\" 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\"\u003esqlite-s3vfs\u003c/a\u003e by \u003ca href=\"https://github.com/uktrade\" 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\"\u003euktrade\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003ePython writable virtual filesystem for SQLite on S3\u003c/p\u003e\n",
      "content_text": "\nThe work on [sqlite-s3vfs](https://github.com/uktrade/sqlite-s3vfs) by [uktrade](https://github.com/uktrade).\n\nPython writable virtual filesystem for SQLite on S3\n",
      "summary": "The work on sqlite-s3vfs by uktrade.",
      "date_published": "2025-02-07T17:09:49Z",
      "date_modified": "2025-02-07T17:09:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-553/",
      "url": "https://waylonwalker.com/thought-553/",
      "title": "💭 Jhey ʕ·ᴥ·　ʔ: \"breakin' down classics CSS background-image + ba...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/jhey.dev/post/3lgoev36hps2h\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://video.bsky.app/watch/did%3Aplc%3Amqptcphqrjhr5nziy33f3kco/bafkreiahiep3273fxhefbijmfixshdlksetwczgtxx2xlxqzti7gik3uuy/thumbnail.jpg\" alt=\"Jhey ʕ·ᴥ·　ʔ (@jhey.dev) — breakin\u0026#39; down classics\n\u0026lt;p\u0026gt;CSS background-image + background-blend-mode + custom properties = holo-like effects with parallax ✨\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Jhey ʕ·ᴥ·　ʔ (@jhey.dev) — breakin\u0026#39; down classics\n\u0026lt;p\u0026gt;CSS background-image + background-blend-mode + custom properties = holo-like effects with parallax ✨\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eJhey ʕ·ᴥ·　ʔ (@jhey.dev)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003ebreakin\u0026#39; down classics\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eCSS background-image + background-blend-mode + custom properties = holo-like effects with parallax ✨\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eJhey has the coolest webdev demos!\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/jhey.dev/post/3lgoev36hps2h\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://video.bsky.app/watch/did%3Aplc%3Amqptcphqrjhr5nziy33f3kco/bafkreiahiep3273fxhefbijmfixshdlksetwczgtxx2xlxqzti7gik3uuy/thumbnail.jpg\" alt=\"Jhey ʕ·ᴥ·　ʔ (@jhey.dev) — breakin\u0026#39; down classics\n\nCSS background-image + background-blend-mode + custom properties = holo-like effects with parallax ✨\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eJhey ʕ·ᴥ·　ʔ (@jhey.dev)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ebreakin\u0026#39; down classics\n\nCSS background-image + background-blend-mode + custom properties = holo-like effects with parallax ✨\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nJhey has the coolest webdev demos!\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/jhey.dev/post/3lgoev36hps2h",
      "date_published": "2025-02-07T01:59:07Z",
      "date_modified": "2025-02-07T01:59:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-552/",
      "url": "https://waylonwalker.com/thought-552/",
      "title": "💭 Fix VERSION_OR_CIPHER_MISMATCH · Cloudflare SSL/TLS docs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://developers.cloudflare.com/ssl/troubleshooting/version-cipher-mismatch/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://developers.cloudflare.com/core-services-preview.png\" alt=\"ERR_SSL_VERSION_OR_CIPHER_MISMATCH — Learn how to troubleshoot ERR_SSL_VERSION_OR_CIPHER_MISMATCH when using Cloudflare SSL/TLS.\" loading=\"lazy\"/ data-glightbox=\"description: ERR_SSL_VERSION_OR_CIPHER_MISMATCH — Learn how to troubleshoot ERR_SSL_VERSION_OR_CIPHER_MISMATCH when using Cloudflare SSL/TLS.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eERR_SSL_VERSION_OR_CIPHER_MISMATCH\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLearn how to troubleshoot ERR_SSL_VERSION_OR_CIPHER_MISMATCH when using Cloudflare SSL/TLS.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eCloudflare Docs · developers.cloudflare.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eToday I learned that cloudflare free tier  universal certs do not support multilevel subdomains.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBy default, Cloudflare Universal SSL certificates only cover your apex domain and one level of subdomain.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7d1fe806-a3d0-47e3-8eb1-08c1a0965728.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/7d1fe806-a3d0-47e3-8eb1-08c1a0965728.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://developers.cloudflare.com/ssl/troubleshooting/version-cipher-mismatch/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://developers.cloudflare.com/core-services-preview.png\" alt=\"ERR_SSL_VERSION_OR_CIPHER_MISMATCH — Learn how to troubleshoot ERR_SSL_VERSION_OR_CIPHER_MISMATCH when using Cloudflare SSL/TLS.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eERR_SSL_VERSION_OR_CIPHER_MISMATCH\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eLearn how to troubleshoot ERR_SSL_VERSION_OR_CIPHER_MISMATCH when using Cloudflare SSL/TLS.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eCloudflare Docs \u0026middot; developers.cloudflare.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nToday I learned that cloudflare free tier  universal certs do not support multilevel subdomains.\n\n\n\u003e By default, Cloudflare Universal SSL certificates only cover your apex domain and one level of subdomain.\n\n![image](https://dropper.waylonwalker.com/api/file/7d1fe806-a3d0-47e3-8eb1-08c1a0965728.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://developers.cloudflare.com/ssl/troubleshooting/version-cipher-mismatch/",
      "date_published": "2025-02-05T20:43:52Z",
      "date_modified": "2025-02-05T20:43:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-551/",
      "url": "https://waylonwalker.com/thought-551/",
      "title": "💭 Migration guide for config loaders — kedro 0.19.11 documentation",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://docs.kedro.org/en/stable/configuration/config_loader_migration.html\" class=\"glightbox-link\" aria-label=\"https://docs.kedro.org/en/stable/configuration/config_loader_migration.html\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://docs.kedro.org/en/stable/configuration/config_loader_migration.html\" alt=\"https://docs.kedro.org/en/stable/configuration/config_loader_migration.html\"/ data-glightbox=\"description: https://docs.kedro.org/en/stable/configuration/config_loader_migration.html\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eMigrating from kedro 0.18.4 to the latest version involves handling the deprecated OmegaConf loader.  Switching over does not look as bad as I originally thought.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003einstalling kedro 0.18.5+\u003c/li\u003e\n\u003cli\u003eset the CONFIG_LOADER_CLASS in settings.py\u003c/li\u003e\n\u003cli\u003eswap out import statements\u003c/li\u003e\n\u003cli\u003econfig must be yaml or json\u003c/li\u003e\n\u003cli\u003egetting values from config must be done with bracket \u003ccode\u003e__getattr__\u003c/code\u003e style not with \u003ccode\u003e.get\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eany Exceptions caught from Templated config loader will need to be swapped to OmegaConfig exceptions, similar to #3\u003c/li\u003e\n\u003cli\u003etemplated values must lead with an \u003ccode\u003e_\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eGlobals are handled different\u003c/li\u003e\n\u003cli\u003eOmegaConfig does not support jinja2 sytax, but rather a \u003ccode\u003e${variable}\u003c/code\u003e syntax\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://docs.kedro.org/en/stable/configuration/config_loader_migration.html](/static/https://docs.kedro.org/en/stable/configuration/config_loader_migration.html)\n\nMigrating from kedro 0.18.4 to the latest version involves handling the deprecated OmegaConf loader.  Switching over does not look as bad as I originally thought.\n\n\n1. installing kedro 0.18.5+\n2. set the CONFIG_LOADER_CLASS in settings.py\n3. swap out import statements\n4. config must be yaml or json\n5. getting values from config must be done with bracket `__getattr__` style not with `.get`\n6. any Exceptions caught from Templated config loader will need to be swapped to OmegaConfig exceptions, similar to #3\n7. templated values must lead with an `_`\n8. Globals are handled different\n9. OmegaConfig does not support jinja2 sytax, but rather a `${variable}` syntax\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://docs.kedro.org/en/stable/configuration/config_migration.html",
      "date_published": "2025-02-05T18:16:44Z",
      "date_modified": "2025-02-05T18:16:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data",
        "kedro",
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-550/",
      "url": "https://waylonwalker.com/thought-550/",
      "title": "💭 Search: 5 results found for \"box white\" – Kailh switch",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://www.kailh.net/search?q=box+white\u0026amp;_pos=2\u0026amp;_psq=white\u0026amp;_ss=e\u0026amp;_v=1.0\" class=\"glightbox-link\" aria-label=\"https://www.kailh.net/search?q=box+white\u0026amp;amp;_pos=2\u0026amp;amp;_psq=white\u0026amp;amp;_ss=e\u0026amp;amp;_v=1.0\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://www.kailh.net/search?q=box+white\u0026amp;_pos=2\u0026amp;_psq=white\u0026amp;_ss=e\u0026amp;_v=1.0\" alt=\"https://www.kailh.net/search?q=box+white\u0026amp;_pos=2\u0026amp;_psq=white\u0026amp;_ss=e\u0026amp;_v=1.0\"/ data-glightbox=\"description: https://www.kailh.net/search?q=box+white\u0026amp;_pos=2\u0026amp;_psq=white\u0026amp;_ss=e\u0026amp;_v=1.0\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003ePrime mentioned on stream that Whites were his favorite switch.  I tend to like lighter switches and want to give it a try.  I really like my Durock lupine’s at 55g, the box whites are 45g, that feels like it would take quite a bit more control, floating over the keys.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://www.kailh.net/search?q=box+white\u0026amp;_pos=2\u0026amp;_psq=white\u0026amp;_ss=e\u0026amp;_v=1.0](/static/https://www.kailh.net/search?q=box+white\u0026amp;_pos=2\u0026amp;_psq=white\u0026amp;_ss=e\u0026amp;_v=1.0)\n\nPrime mentioned on stream that Whites were his favorite switch.  I tend to like lighter switches and want to give it a try.  I really like my Durock lupine's at 55g, the box whites are 45g, that feels like it would take quite a bit more control, floating over the keys.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.kailh.net/search?q=box+white\u0026_psq=white\u0026_v=1.0",
      "date_published": "2025-02-03T15:24:40Z",
      "date_modified": "2025-02-03T15:24:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keyboard",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/markdown-split-panel/",
      "url": "https://waylonwalker.com/markdown-split-panel/",
      "title": "markdown split panel",
      "content_html": "\u003cp\u003eToday I was playing with markdown split panels.  I want to be able to compare\nand constrast occasionually, today the inspiration hit to do this using\nadmonitions.\u003c/p\u003e\n\u003c!-- ![screenshot-2025-02-04T02-28-26-951Z.png](https://dropper.waylonwalker.com/api/file/46ead069-5731-4028-886a-f76d56792691.png){.more-cinematic} --\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/e3d40c22-643d-433c-8eb4-c3ddf91d0527.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-04T02-28-46-750Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/e3d40c22-643d-433c-8eb4-c3ddf91d0527.png\" alt=\"screenshot-2025-02-04T02-28-46-750Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-02-04T02-28-46-750Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp class=\"rounded-xl\"\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eMobile Users 🔄\u003c/p\u003e\n\u003cp\u003eYou will need to rotate your device to see the side by side feature.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"the-markdown\"\u003eThe Markdown \u003ca href=\"#the-markdown\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis is what I am going for, one admonition that is easy to remember, that\nnests inside of itself , and I can put as much markdown on the inside that I\nwant.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e!!! vsplit I Have two opinions\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    !!! vsplit Left Opinion\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        supporting arguments\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [x]\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [ ]\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    !!! vsplit Right Opinion\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        supporting arguments\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e*\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [ ]\u003c/span\u003e lorem ipsum\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003e- [x]\u003c/span\u003e ipsum dolor\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is the result of that markdown.\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eI Have two opinions\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eLeft Opinion\u003c/p\u003e\n\u003cp\u003esupporting arguments\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003elorem ipsum\u003c/li\u003e\n\u003cli\u003eipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e lorem ipsum\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e ipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eRight Opinion\u003c/p\u003e\n\u003cp\u003esupporting arguments\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003elorem ipsum\u003c/li\u003e\n\u003cli\u003eipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e lorem ipsum\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e ipsum dolor\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n\u003cp class=\"clean\"\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eHello World\u003c/p\u003e\n\u003cp\u003eHere is a hello world application written in the typer cli framework\nfor cli.\u003c/p\u003e\n\u003c/div\u003e\n\u003cdiv class=\"admonition vsplit\"\u003e\n\u003cp class=\"admonition-title\"\u003eVsplit\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e    ``` python\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e#!/usr/bin/env -S uv run –quiet –script\u003c/p\u003e\n\u003ch1 id=\"heading\"\u003e///\u003c/h1\u003e\n\u003ch1 id=\"requires-python--312\"\u003erequires-python = “\u0026gt;=3.12”\u003c/h1\u003e\n\u003ch1 id=\"dependencies--\"\u003edependencies = [\u003c/h1\u003e\n\u003ch1 id=\"typer\"\u003e“typer”,\u003c/h1\u003e\n\u003ch1 id=\"heading-1\"\u003e]\u003c/h1\u003e\n\u003ch1 id=\"heading-2\"\u003e///\u003c/h1\u003e\n\u003cp\u003eimport typer\u003c/p\u003e\n\u003cp\u003eapp = typer.Typer()\u003c/p\u003e\n\u003cp\u003e@app.command()\ndef hello(name: str = “World”):\n“““Prints a greeting message.”””\ntyper.echo(f\u0026#34;Hello, {name}!\u0026#34;)\u003c/p\u003e\n\u003cp\u003eif \u003cstrong\u003ename\u003c/strong\u003e == “\u003cstrong\u003emain\u003c/strong\u003e”:\napp()\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n",
      "content_text": "\nToday I was playing with markdown split panels.  I want to be able to compare\nand constrast occasionually, today the inspiration hit to do this using\nadmonitions.\n\n\u003c!-- ![screenshot-2025-02-04T02-28-26-951Z.png](https://dropper.waylonwalker.com/api/file/46ead069-5731-4028-886a-f76d56792691.png){.more-cinematic} --\u003e\n\n![screenshot-2025-02-04T02-28-46-750Z.png](https://dropper.waylonwalker.com/api/file/e3d40c22-643d-433c-8eb4-c3ddf91d0527.png){.more-cinematic}\n\n{.rounded-xl }\n!!! Note Mobile Users 🔄\n\n    You will need to rotate your device to see the side by side feature.\n\n## The Markdown\n\nThis is what I am going for, one admonition that is easy to remember, that\nnests inside of itself , and I can put as much markdown on the inside that I\nwant.\n\n``` markdown\n!!! vsplit I Have two opinions\n\n    !!! vsplit Left Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [x] lorem ipsum\n        - [ ] ipsum dolor\n\n    !!! vsplit Right Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [ ] lorem ipsum\n        - [x] ipsum dolor\n```\n\nHere is the result of that markdown.\n\n!!! vsplit I Have two opinions\n\n    !!! vsplit Left Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [x] lorem ipsum\n        - [ ] ipsum dolor\n\n    !!! vsplit Right Opinion\n\n        supporting arguments\n\n        * lorem ipsum\n        * ipsum dolor\n\n        - [ ] lorem ipsum\n        - [x] ipsum dolor\n\n{.clean}\n!!! vsplit \"\"\n\n    !!! vsplit Hello World\n\n        Here is a hello world application written in the typer cli framework\n        for cli.\n\n    !!! vsplit \"\"\n        ``` python\n        #!/usr/bin/env -S uv run --quiet --script\n        # ///\n        # requires-python = \"\u003e=3.12\"\n        # dependencies = [\n        #     \"typer\",\n        # ]\n        # ///\n\n        import typer\n\n        app = typer.Typer()\n\n        @app.command()\n        def hello(name: str = \"World\"):\n            \"\"\"Prints a greeting message.\"\"\"\n            typer.echo(f\"Hello, {name}!\")\n\n        if __name__ == \"__main__\":\n            app()\n        ```\n",
      "summary": "Today I was playing with markdown split panels. I want to be able to compare and constrast occasionually, today the inspiration hit to do this using...",
      "date_published": "2025-02-03T13:21:23Z",
      "date_modified": "2025-02-03T13:21:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "markdown"
      ]
    },
    {
      "id": "https://waylonwalker.com/make-minio-access-key/",
      "url": "https://waylonwalker.com/make-minio-access-key/",
      "title": "Make MinIO Access Key",
      "content_html": "\u003cp\u003eToday in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e I wanted to setup a new service that needed a MinIO access\nkey. So I created a new user and a new access key with the MinIO CLI rather\nthan poking through the ui like I have before.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/2f706c5d-c591-4465-8d2b-eb18ce26aeca.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-03T02-13-38-628Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/2f706c5d-c591-4465-8d2b-eb18ce26aeca.png\" alt=\"screenshot-2025-02-03T02-13-38-628Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-02-03T02-13-38-628Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"global-level-vs-user-level\"\u003eGlobal Level vs User Level \u003ca href=\"#global-level-vs-user-level\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe MinIO CLI has two levels of access, global and user level. Most of the\ncommands in this post will have several ways to do similar tasks that would\npotentially work.  We are going to prefer to use the user level commands for\nmore control.  For some commands such as listing Keys it is handy to use the\nglobal level.\u003c/p\u003e\n\u003ch2 id=\"the-policy\"\u003eThe Policy \u003ca href=\"#the-policy\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eFirst we are going to make a new policy file named \u003ccode\u003emypages_rw_policy.json\u003c/code\u003e.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Version\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;2012-10-17\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Statement\u0026#34;\u003c/span\u003e: \u003cspan class=\"o\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;Action\u0026#34;\u003c/span\u003e: \u003cspan class=\"o\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:GetBucketLocation\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:ListBucket\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e]\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;Effect\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;Allow\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;Resource\u0026#34;\u003c/span\u003e: \u003cspan class=\"o\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;arn:aws:s3:::mybucket\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e}\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;Action\u0026#34;\u003c/span\u003e: \u003cspan class=\"o\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:GetObject\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:PutObject\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:DeleteObject\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:ListMultipartUploadParts\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:AbortMultipartUpload\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e]\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;Effect\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;Allow\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;Resource\u0026#34;\u003c/span\u003e: \u003cspan class=\"o\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;arn:aws:s3:::mybucket/*\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"set-the-minio-alias\"\u003eSet the Minio Alias \u003ca href=\"#set-the-minio-alias\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eBefore we can create new access keys we will need to start by settin up an\nalias in minio that has admin rights to the minio server.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# default values\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eMINIO_ACCESS_KEY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eminioadmin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eMINIO_SECRET_KEY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eminioadmin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e \u003cspan class=\"nb\"\u003eset\u003c/span\u003e myminio https://myminio.example.com \u003cspan class=\"nv\"\u003e$MINIO_ACCESS_KEY\u003c/span\u003e \u003cspan class=\"nv\"\u003e$MINIO_SECRET_KEY\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eCheck to see if your alias exists.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc \u003cspan class=\"nb\"\u003ealias\u003c/span\u003e list\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"the-script\"\u003eThe Script \u003ca href=\"#the-script\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow we are going to pick a SECRETKEY and a NEWUSERNAME, create the policy,\ncreate the user, attach the policy to the user and add the user to the alias.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/bin/bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNEWUSERNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eMYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eNEWPASSWORD\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003emysupersecretkey\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e USERNAME: \u003cspan class=\"nv\"\u003e$NEWUSERNAME\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e PASSWORD: \u003cspan class=\"nv\"\u003e$NEWPASSWORD\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create a new policy for read/write to the bucket\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin policy create myminio mybucket-readwrite mypages_rw_policy.json\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create a new user\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin user add myminio \u003cspan class=\"nv\"\u003e$NEWUSERNAME\u003c/span\u003e \u003cspan class=\"nv\"\u003e$NEWPASSWORD\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# attach the policy to the user, giving them read/write to the bucket\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin policy attach myminio mybucket-readwrite --user \u003cspan class=\"nv\"\u003e$NEWUSERNAME\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# add the user to the alias\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc config host add myminio https://minio.wayl.one \u003cspan class=\"nv\"\u003e$NEWUSERNAME\u003c/span\u003e \u003cspan class=\"nv\"\u003e$NEWPASSWORD\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create a new access key for the user with thier permissions\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin user svcacct add                       \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emyminio MYPAGESUSER                     \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--name mypagesRWKey                       \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--description \u003cspan class=\"s2\"\u003e\u0026#34;MYPAGESUSER Key for myminio\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e--expiry 2025-03-01\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eNEWSECRETKEY\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e3e11************************************************************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAccess Key: IL4*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSecret Key: M3D*************************************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExpiration: 2025-03-01 06:00:00 +0000 UTC\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition attention\"\u003e\n\u003cp class=\"admonition-title\"\u003eAttention\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* This is the secret key, do not share it with anyone.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eThis secret key will only be displayed once here, make sure you copy it\nto a secure location now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ch2 id=\"give-it-a-test\"\u003eGive it a test \u003ca href=\"#give-it-a-test\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow we can test that it works, by creating a file and copying it into the\nbucket.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# set up to work with the aws cli\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eAWS_DEFAULT_REGION\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eus-east-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eAWS_ACCESS_KEY_ID\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eIL4*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eAWS_SECRET_ACCESS_KEY\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003eM3D*************************************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eAWS_ENDPOINT_URL\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ehttps://myminio.example.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create a test file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;You How\u0026#34;\u003c/span\u003e \u0026gt; hi-hello.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# upload the file\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaws s3 cp hi-hello.txt s3://mybucket/hi-hello.txt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# test the file exists\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eaws s3 ls s3://mybucket\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# output\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# 2025-02-02 19:25:02          8 hi-hello.txt\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eI am using the aws cli to test, I installed it with pip.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epipx install awscli\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003ch2 id=\"managing-access-keys\"\u003eManaging Access Keys \u003ca href=\"#managing-access-keys\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can list all of the access keys for a user, or all users.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# for one user\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin accesskey ls myminio/ MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# for all users\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin accesskey ls myminio/ --all\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe output will show you all of the access keys for each user.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUser: MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  Access Keys:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    IL4*****************, expires: \u003cspan class=\"m\"\u003e3\u003c/span\u003e weeks from now, sts: \u003cspan class=\"nb\"\u003efalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou can also get a list of the service accounts for a user with this command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin user svcacct ls myminio/ MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   Access Key        \u003cspan class=\"p\"\u003e|\u003c/span\u003e Expiry\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIL4***************** \u003cspan class=\"p\"\u003e|\u003c/span\u003e 2025-03-01 06:00:00 +0000 UTC\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eYou cannot see all of these keys from the web ui, the cli seems to be the\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eonly way to display all access keys, including access keys for other users.\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"creating-an-ro-access-key\"\u003eCreating an RO Access Key \u003ca href=\"#creating-an-ro-access-key\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI ran into errors when trying to create a new key with exactly the same\npermissions as the user, I’m not sure if adding a policy that does not match\nthe user is allowed or not.\u003c/p\u003e\n\u003cp\u003eI made a new policy that has read only access to the bucket as \u003ccode\u003emypages_ro_policy.json\u003c/code\u003e\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003e\u0026#34;Version\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;2012-10-17\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003e\u0026#34;Statement\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;Action\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:GetBucketLocation\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:ListBucket\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;Effect\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Allow\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;Resource\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;arn:aws:s3:::mypages\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;Action\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:GetObject\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;s3:ListMultipartUploadParts\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;Effect\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Allow\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;Resource\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"s2\"\u003e\u0026#34;arn:aws:s3:::mypages/*\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis command will use the above policy to create a new read only access key.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin user svcacct add \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  myminio MYPAGESUSER \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --name mypagesRWKey \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --description \u003cspan class=\"s2\"\u003e\u0026#34;MYPAGESUSER READ ONLY Key for myminio\u0026#34;\u003c/span\u003e \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --expiry 2025-03-01 \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --policy mypages_ro_policy.json\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThe output will show you the access key and secret key.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAccess Key: KDM*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSecret Key: 8Ww*************************************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExpiration: 2025-03-01 06:00:00 +0000 UTC\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition attention\"\u003e\n\u003cp class=\"admonition-title\"\u003eAttention\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* This is the secret key, do not share it with anyone.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eThis secret key will only be displayed once here, make sure you copy it\nto a secure location now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/div\u003e\n\u003ch2 id=\"removing-a-service-account\"\u003eRemoving a service account \u003ca href=\"#removing-a-service-account\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you want to remove a service account, you can use the \u003ccode\u003erm\u003c/code\u003e command to remove\nthe Access Key, by alias and Access Key.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emc admin user svcacct rm myminio/ QH6*****************\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"getting-info\"\u003eGetting info \u003ca href=\"#getting-info\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eYou can get the info for a user or service accounts using the \u003ccode\u003einfo\u003c/code\u003e\nsubcommands.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ mc admin user info minio-wayl-one/ MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAccessKey: MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStatus: enabled\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePolicyName: mypages-readwrite\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eMemberOf: \u003cspan class=\"o\"\u003e[]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ mc admin user svcacct ls minio-wayl-one/ MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e   Access Key        \u003cspan class=\"p\"\u003e|\u003c/span\u003e Expiry\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eKDM***************** \u003cspan class=\"p\"\u003e|\u003c/span\u003e 2025-03-01 06:00:00 +0000 UTC\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIL4***************** \u003cspan class=\"p\"\u003e|\u003c/span\u003e 2025-03-01 06:00:00 +0000 UTC\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ mc admin user svcacct info myminio/ IL4*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAccessKey: IL4*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eParentUser: MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStatus: on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eName: mypagesRWKey\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDescription: MYPAGESUSER Key \u003cspan class=\"k\"\u003efor\u003c/span\u003e myminio\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePolicy: implied\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExpiration: \u003cspan class=\"m\"\u003e3\u003c/span\u003e weeks from now\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ mc admin user svcacct info myminio/ KDM*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAccessKey: KDM*****************\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eParentUser: MYPAGESUSER\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStatus: on\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eName: mypagesRWKey\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eDescription: MYPAGESUSER READ ONLY Key \u003cspan class=\"k\"\u003efor\u003c/span\u003e myminio\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePolicy: embedded\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eExpiration: \u003cspan class=\"m\"\u003e3\u003c/span\u003e weeks from now\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday in my homelab I wanted to setup a new service that needed a MinIO access\nkey. So I created a new user and a new access key with the MinIO CLI rather\nthan poking through the ui like I have before.\n\n![screenshot-2025-02-03T02-13-38-628Z.png](https://dropper.waylonwalker.com/api/file/2f706c5d-c591-4465-8d2b-eb18ce26aeca.png){.more-cinematic}\n\n## Global Level vs User Level\n\nThe MinIO CLI has two levels of access, global and user level. Most of the\ncommands in this post will have several ways to do similar tasks that would\npotentially work.  We are going to prefer to use the user level commands for\nmore control.  For some commands such as listing Keys it is handy to use the\nglobal level.\n\n## The Policy\n\nFirst we are going to make a new policy file named `mypages_rw_policy.json`.\n\n```bash\n{\n\"Version\": \"2012-10-17\",\n\"Statement\": [\n    {\n    \"Action\": [\n        \"s3:GetBucketLocation\",\n        \"s3:ListBucket\"\n    ],\n    \"Effect\": \"Allow\",\n    \"Resource\": [\n        \"arn:aws:s3:::mybucket\"\n    ]\n    },\n    {\n    \"Action\": [\n        \"s3:GetObject\",\n        \"s3:PutObject\",\n        \"s3:DeleteObject\",\n        \"s3:ListMultipartUploadParts\",\n        \"s3:AbortMultipartUpload\"\n    ],\n    \"Effect\": \"Allow\",\n    \"Resource\": [\n        \"arn:aws:s3:::mybucket/*\"\n    ]\n    }\n]\n}\n```\n\n## Set the Minio Alias\n\nBefore we can create new access keys we will need to start by settin up an\nalias in minio that has admin rights to the minio server.\n\n``` bash\n# default values\nexport MINIO_ACCESS_KEY=minioadmin\nexport MINIO_SECRET_KEY=minioadmin\n\nmc alias set myminio https://myminio.example.com $MINIO_ACCESS_KEY $MINIO_SECRET_KEY\n```\n\nCheck to see if your alias exists.\n\n``` bash\nmc alias list\n```\n\n## The Script\n\nNow we are going to pick a SECRETKEY and a NEWUSERNAME, create the policy,\ncreate the user, attach the policy to the user and add the user to the alias.\n\n``` bash\n#!/bin/bash\nNEWUSERNAME=MYPAGESUSER\nNEWPASSWORD=mysupersecretkey\necho USERNAME: $NEWUSERNAME\necho PASSWORD: $NEWPASSWORD\n\n# create a new policy for read/write to the bucket\nmc admin policy create myminio mybucket-readwrite mypages_rw_policy.json\n\n# create a new user\nmc admin user add myminio $NEWUSERNAME $NEWPASSWORD\n\n# attach the policy to the user, giving them read/write to the bucket\nmc admin policy attach myminio mybucket-readwrite --user $NEWUSERNAME\n\n# add the user to the alias\nmc config host add myminio https://minio.wayl.one $NEWUSERNAME $NEWPASSWORD\n\n# create a new access key for the user with thier permissions\nmc admin user svcacct add                       \\\nmyminio MYPAGESUSER                     \\\n--name mypagesRWKey                       \\\n--description \"MYPAGESUSER Key for myminio\" \\\n--expiry 2025-03-01\n```\n\n``` bash\nNEWSECRETKEY\n3e11************************************************************\nAccess Key: IL4*****************\nSecret Key: M3D*************************************\nExpiration: 2025-03-01 06:00:00 +0000 UTC\n```\n\n!!! Attention\n    * This is the secret key, do not share it with anyone.\n    * This secret key will only be displayed once here, make sure you copy it\n      to a secure location now.\n\n## Give it a test\n\nNow we can test that it works, by creating a file and copying it into the\nbucket.\n\n``` bash\n# set up to work with the aws cli\nexport AWS_DEFAULT_REGION=us-east-1\nexport AWS_ACCESS_KEY_ID=IL4*****************\nexport AWS_SECRET_ACCESS_KEY=M3D*************************************\nexport AWS_ENDPOINT_URL=https://myminio.example.com\n\n# create a test file\necho \"You How\" \u003e hi-hello.txt\n# upload the file\naws s3 cp hi-hello.txt s3://mybucket/hi-hello.txt\n# test the file exists\naws s3 ls s3://mybucket\n# output\n# 2025-02-02 19:25:02          8 hi-hello.txt\n```\n\n!!! note\n    I am using the aws cli to test, I installed it with pip.\n\n    ``` bash\n    pipx install awscli\n    ```\n\n## Managing Access Keys\n\nYou can list all of the access keys for a user, or all users.\n\n``` bash\n# for one user\nmc admin accesskey ls myminio/ MYPAGESUSER\n\n# for all users\nmc admin accesskey ls myminio/ --all\n```\n\nThe output will show you all of the access keys for each user.\n\n``` bash\nUser: MYPAGESUSER\n  Access Keys:\n    IL4*****************, expires: 3 weeks from now, sts: false\n```\n\nYou can also get a list of the service accounts for a user with this command.\n\n``` bash\nmc admin user svcacct ls myminio/ MYPAGESUSER\n```\n\n``` bash\n   Access Key        | Expiry\nIL4***************** | 2025-03-01 06:00:00 +0000 UTC\n````\n\n!!! Note\n    You cannot see all of these keys from the web ui, the cli seems to be the\n    only way to display all access keys, including access keys for other users.\n\n## Creating an RO Access Key\n\nI ran into errors when trying to create a new key with exactly the same\npermissions as the user, I'm not sure if adding a policy that does not match\nthe user is allowed or not.\n\nI made a new policy that has read only access to the bucket as `mypages_ro_policy.json`\n\n``` json\n{\n\"Version\": \"2012-10-17\",\n\"Statement\": [\n    {\n    \"Action\": [\n        \"s3:GetBucketLocation\",\n        \"s3:ListBucket\"\n    ],\n    \"Effect\": \"Allow\",\n    \"Resource\": [\n        \"arn:aws:s3:::mypages\"\n    ]\n    },\n    {\n    \"Action\": [\n        \"s3:GetObject\",\n        \"s3:ListMultipartUploadParts\"\n    ],\n    \"Effect\": \"Allow\",\n    \"Resource\": [\n        \"arn:aws:s3:::mypages/*\"\n    ]\n    }\n]\n}\n```\n\nThis command will use the above policy to create a new read only access key.\n\n``` bash\nmc admin user svcacct add \\\n  myminio MYPAGESUSER \\\n  --name mypagesRWKey \\\n  --description \"MYPAGESUSER READ ONLY Key for myminio\" \\\n  --expiry 2025-03-01 \\\n  --policy mypages_ro_policy.json\n```\n\nThe output will show you the access key and secret key.\n\n``` bash\nAccess Key: KDM*****************\nSecret Key: 8Ww*************************************\nExpiration: 2025-03-01 06:00:00 +0000 UTC\n```\n\n!!! Attention\n    * This is the secret key, do not share it with anyone.\n    * This secret key will only be displayed once here, make sure you copy it\n      to a secure location now.\n\n## Removing a service account\n\nIf you want to remove a service account, you can use the `rm` command to remove\nthe Access Key, by alias and Access Key.\n\n``` bash\nmc admin user svcacct rm myminio/ QH6*****************\n```\n\n## Getting info\n\nYou can get the info for a user or service accounts using the `info`\nsubcommands.\n\n``` bash\n⬢ [devtainer] ❯ mc admin user info minio-wayl-one/ MYPAGESUSER\nAccessKey: MYPAGESUSER\nStatus: enabled\nPolicyName: mypages-readwrite\nMemberOf: []\n\n⬢ [devtainer] ❯ mc admin user svcacct ls minio-wayl-one/ MYPAGESUSER\n   Access Key        | Expiry\nKDM***************** | 2025-03-01 06:00:00 +0000 UTC\nIL4***************** | 2025-03-01 06:00:00 +0000 UTC\n\n⬢ [devtainer] ❯ mc admin user svcacct info myminio/ IL4*****************\nAccessKey: IL4*****************\nParentUser: MYPAGESUSER\nStatus: on\nName: mypagesRWKey\nDescription: MYPAGESUSER Key for myminio\nPolicy: implied\nExpiration: 3 weeks from now\n\n⬢ [devtainer] ❯ mc admin user svcacct info myminio/ KDM*****************\nAccessKey: KDM*****************\nParentUser: MYPAGESUSER\nStatus: on\nName: mypagesRWKey\nDescription: MYPAGESUSER READ ONLY Key for myminio\nPolicy: embedded\nExpiration: 3 weeks from now\n```\n",
      "summary": "Today in my homelab I wanted to setup a new service that needed a MinIO access key. So I created a new user and a new access key with the MinIO CLI rather...",
      "date_published": "2025-02-02T19:18:05Z",
      "date_modified": "2025-02-02T19:18:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "minio"
      ]
    },
    {
      "id": "https://waylonwalker.com/cloudnative-pg-cloudnative-pg/",
      "url": "https://waylonwalker.com/cloudnative-pg-cloudnative-pg/",
      "title": "⭐ cloudnative-pg cloudnative-pg",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/cloudnative-pg\" 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\"\u003ecloudnative-pg\u003c/a\u003e and their project \u003ca href=\"https://github.com/cloudnative-pg/cloudnative-pg\" 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\"\u003ecloudnative-pg\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCloudNativePG is a comprehensive platform designed to seamlessly manage PostgreSQL databases within Kubernetes environments, covering the entire operational lifecycle from initial deployment to ongoing maintenance\u003c/p\u003e\n",
      "content_text": "\nCheck out [cloudnative-pg](https://github.com/cloudnative-pg) and their project [cloudnative-pg](https://github.com/cloudnative-pg/cloudnative-pg).\n\nCloudNativePG is a comprehensive platform designed to seamlessly manage PostgreSQL databases within Kubernetes environments, covering the entire operational lifecycle from initial deployment to ongoing maintenance\n",
      "summary": "Check out cloudnative-pg and their project cloudnative-pg.",
      "date_published": "2025-02-02T18:40:11Z",
      "date_modified": "2025-02-02T18:40:11Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/open-webui-open-webui/",
      "url": "https://waylonwalker.com/open-webui-open-webui/",
      "title": "⭐ open-webui open-webui",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/open-webui/open-webui\" 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\"\u003eopen-webui\u003c/a\u003e by \u003ca href=\"https://github.com/open-webui\" 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\"\u003eopen-webui\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eUser-friendly AI Interface (Supports Ollama, OpenAI API, …)\u003c/p\u003e\n",
      "content_text": "\nJust starred [open-webui](https://github.com/open-webui/open-webui) by [open-webui](https://github.com/open-webui). It's an exciting project with a lot to offer.\n\nUser-friendly AI Interface (Supports Ollama, OpenAI API, ...)\n",
      "summary": "Just starred open-webui by open-webui. It's an exciting project with a lot to offer.",
      "date_published": "2025-02-02T15:38:37Z",
      "date_modified": "2025-02-02T15:38:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/fcsonline-tmux-thumbs/",
      "url": "https://waylonwalker.com/fcsonline-tmux-thumbs/",
      "title": "⭐ fcsonline tmux-thumbs",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/fcsonline\" 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\"\u003efcsonline’s\u003c/a\u003e project \u003ca href=\"https://github.com/fcsonline/tmux-thumbs\" 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\"\u003etmux-thumbs\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator\u003c/p\u003e\n",
      "content_text": "\nI like [fcsonline's](https://github.com/fcsonline) project [tmux-thumbs](https://github.com/fcsonline/tmux-thumbs).\n\nA lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator\n",
      "summary": "I like fcsonline's project tmux-thumbs.",
      "date_published": "2025-02-02T15:36:30Z",
      "date_modified": "2025-02-02T15:36:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/tailwind-aspect/",
      "url": "https://waylonwalker.com/tailwind-aspect/",
      "title": "tailwind aspect",
      "content_html": "\u003cp\u003eI’ve been back to putting some images on my blog lately and thinking about\nmaking them a bit thinner through the use of aspect ratio for simplicity.  I’m\nleaning pretty heavy on tailwindcss these days due to some weird quirks of\nmarkdown-it-attrs I cannot have slashes in classes from markdown so I made a\n\u003ccode\u003e.cinematic\u003c/code\u003e class to achieve this.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecinematic\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"err\"\u003e@apply\u003c/span\u003e \u003cspan class=\"err\"\u003easpect-[2.39/1]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eExample\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\" class=\"cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI've been back to putting some images on my blog lately and thinking about\nmaking them a bit thinner through the use of aspect ratio for simplicity.  I'm\nleaning pretty heavy on tailwindcss these days due to some weird quirks of\nmarkdown-it-attrs I cannot have slashes in classes from markdown so I made a\n`.cinematic` class to achieve this.\n\n``` css\n.cinematic {\n  @apply aspect-[2.39/1];\n}\n```\n\nExample\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.cinematic}\n",
      "summary": "I've been back to putting some images on my blog lately and thinking about making them a bit thinner through the use of aspect ratio for simplicity. I'm...",
      "date_published": "2025-02-02T14:35:02Z",
      "date_modified": "2025-02-02T14:35:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "tailwindcss",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-549/",
      "url": "https://waylonwalker.com/thought-549/",
      "title": "💭 A Cinematic Aspect Ratio Guide for Every Filmmaker | No Film S...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://nofilmschool.com/cinematic-aspect-ratio\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://nofilmschool.com/media-library/image.png?id=34069461\u0026amp;width=1200\u0026amp;height=600\u0026amp;coordinates=0%2C78%2C0%2C78\" alt=\"An Aspect Ratio Guide for Every Filmmaker — How can the aspect ratio of your film or TV show contribute to your story?\" loading=\"lazy\"/ data-glightbox=\"description: An Aspect Ratio Guide for Every Filmmaker — How can the aspect ratio of your film or TV show contribute to your story?\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAn Aspect Ratio Guide for Every Filmmaker\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHow can the aspect ratio of your film or TV show contribute to your story?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eNo Film School · nofilmschool.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eA good reference of common screen ratios.  I just realized that 16:9 is also 1.78:1.  I’ve been putting some images on my blog again, and thinking about using some 2.39:1 ratio on them.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://nofilmschool.com/cinematic-aspect-ratio\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://nofilmschool.com/media-library/image.png?id=34069461\u0026amp;width=1200\u0026amp;height=600\u0026amp;coordinates=0%2C78%2C0%2C78\" alt=\"An Aspect Ratio Guide for Every Filmmaker — How can the aspect ratio of your film or TV show contribute to your story?\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAn Aspect Ratio Guide for Every Filmmaker\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHow can the aspect ratio of your film or TV show contribute to your story?\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eNo Film School \u0026middot; nofilmschool.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nA good reference of common screen ratios.  I just realized that 16:9 is also 1.78:1.  I've been putting some images on my blog again, and thinking about using some 2.39:1 ratio on them.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://nofilmschool.com/cinematic-aspect-ratio",
      "date_published": "2025-02-01T20:33:01Z",
      "date_modified": "2025-02-01T20:33:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-548/",
      "url": "https://waylonwalker.com/thought-548/",
      "title": "💭 I Think I Love Deepseek R1 - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"GNHuJE_GARc\" title=\"I Think I Love Deepseek R1\" playlabel=\"Play: I Think I Love Deepseek R1\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThere is a glimmer of hope out there that normal people can scrap together enough gpu to really run the latest models themselves.  The ui really appears to be having huge leaps forward such that doing things like rag is no longer such a research project that it was just a few years ago.  So excited to see Prime go through this \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e exercise.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"GNHuJE_GARc\" title=\"I Think I Love Deepseek R1\" playlabel=\"Play: I Think I Love Deepseek R1\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThere is a glimmer of hope out there that normal people can scrap together enough gpu to really run the latest models themselves.  The ui really appears to be having huge leaps forward such that doing things like rag is no longer such a research project that it was just a few years ago.  So excited to see Prime go through this homelab exercise.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=GNHuJE_GARc",
      "date_published": "2025-02-01T16:29:43Z",
      "date_modified": "2025-02-01T16:29:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/markdown-it-attrs-with-slashes-dont-work/",
      "url": "https://waylonwalker.com/markdown-it-attrs-with-slashes-dont-work/",
      "title": "markdown it attrs with slashes dont work",
      "content_html": "\u003cp\u003eAttrs does not like ‘/’ characters in its classes, so to use some tailwind\nclasses with custom values we must make new classes in our tailwind input css.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nc\"\u003ecinematic\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"err\"\u003e@apply\u003c/span\u003e \u003cspan class=\"err\"\u003easpect-[2.39/1]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eGiven the following markdown with attrs added to the image and to the paragraph\nblock.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003escreenshot-2025-01-31T14-50-00-094Z.png\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\u003c/span\u003e){.aspect-[2.39/1]}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003escreenshot-2025-01-31T14-50-00-094Z.png\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\u003c/span\u003e){.cinematic}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e{.cinematic}\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e![\u003cspan class=\"nt\"\u003escreenshot-2025-01-31T14-50-00-094Z.png\u003c/span\u003e](\u003cspan class=\"na\"\u003ehttps://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eWe get the following output with only the middle one working correctly.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e{.aspect-[2.39/1]}\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\" class=\"cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp class=\"cinematic\"\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eThe inline version of `.cinematic` works, but `.aspect-[2.39/1]` does not,\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eit turns into text after the image.  The block version with the class\nbefore the image applies to the paragraph, not the image.\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\nAttrs does not like '/' characters in its classes, so to use some tailwind\nclasses with custom values we must make new classes in our tailwind input css.\n\n``` css\n.cinematic {\n  @apply aspect-[2.39/1];\n}\n```\n\nGiven the following markdown with attrs added to the image and to the paragraph\nblock.\n\n``` markdown\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.aspect-[2.39/1]}\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.cinematic}\n\n{.cinematic}\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png)\n```\n\nWe get the following output with only the middle one working correctly.\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.aspect-[2.39/1]}\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.cinematic}\n\n{.cinematic}\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png)\n\n!!! Note\n    The inline version of `.cinematic` works, but `.aspect-[2.39/1]` does not,\n    it turns into text after the image.  The block version with the class\n    before the image applies to the paragraph, not the image.\n",
      "summary": "Attrs does not like '/' characters in its classes, so to use some tailwind classes with custom values we must make new classes in our tailwind input css.",
      "date_published": "2025-02-01T11:21:10Z",
      "date_modified": "2025-02-01T11:21:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-547/",
      "url": "https://waylonwalker.com/thought-547/",
      "title": "💭 RSS is dead - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"epQr2kF-1bU\" title=\"RSS is dead\" playlabel=\"Play: RSS is dead\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eOh, this kills me to hear it.  RSS is the \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eOG\u003c/a\u003e way to subscribe and share content out to others.  It gives you control of what you subscribe to and reminds you when new content lands on your favorite sites.  It is a huge component of web 1.0 and I feel is the most decentralized social media can ever hope to be.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"epQr2kF-1bU\" title=\"RSS is dead\" playlabel=\"Play: RSS is dead\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nOh, this kills me to hear it.  RSS is the OG way to subscribe and share content out to others.  It gives you control of what you subscribe to and reminds you when new content lands on your favorite sites.  It is a huge component of web 1.0 and I feel is the most decentralized social media can ever hope to be.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/shorts/epQr2kF-1bU",
      "date_published": "2025-02-01T02:57:59Z",
      "date_modified": "2025-02-01T02:57:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "rss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/markta-0-8-0/",
      "url": "https://waylonwalker.com/markta-0-8-0/",
      "title": "markata 0.8.0",
      "content_html": "\u003cp\u003eI realize that I never did a post on markata  0.8.0, so here it is. 0.8.0 was\nreleased on Jan 2, 2024, just over a year ago at this point.  This was the\nrelease that we got pydantic support, and multi feeds.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/api/file/76e6f022-360f-4566-9b35-a06cecd48738.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-01T02-37-59-690Z.png\"\u003e\u003cimg src=\"/api/file/76e6f022-360f-4566-9b35-a06cecd48738.png\" alt=\"screenshot-2025-02-01T02-37-59-690Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-02-01T02-37-59-690Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"pydantic-support-was-kinda-big\"\u003ePydantic Support Was kinda big \u003ca href=\"#pydantic-support-was-kinda-big\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMarkata is leaning on pydanttic for configuration and Post models.  These\nmodels are filled with validators such that you can give it an empty markdown\npost and it will figure out some pretty sane default values for the\nfrontmatter. From there you can progressivly enhance your post with more\ninformation like title, date, tags, slug, description.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003evalidators are awesome!!\u003c/strong\u003e for instance I don’t set the description on many\nof my posts by hand, I let the auto_description grab the first bit of text\nfrom the post most of the time.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"multi-feeds\"\u003eMulti Feeds \u003ca href=\"#multi-feeds\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMarkata==0.8.1 brought multiple feeds into the mix, and started to take place\nof rss and sitemap.  Feeds are a list of posts that are configured with a slug,\nfilter, sort, reverse, description, and a template.  These feeds then become\nobjects you can use to access posts, as well as \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e pages, rss feeds and\nsitemaps.\u003c/p\u003e\n\u003ch2 id=\"jinja-templates\"\u003eJinja Templates \u003ca href=\"#jinja-templates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe final major change within this series is the change out from string\ntemplates to proper jinja templates with partial templates that you can\ninclude.  This has made maintaing templates much easier, as well as the ability\nto customize.  Markata will load templates from both your local templates\ndirectory then from its built in templates directory if it does not find a\ntemplate locally.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eslug\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;python\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;date\u0026lt;=today and \u0026#39;python\u0026#39; in str(tags).lower()\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;date\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ereverse\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edescription\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;A feed of all my python posts\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/\"\u003ehttps://waylonwalker.com/python/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/rss.xml\"\u003ehttps://waylonwalker.com/python/rss.xml\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/sitemap.xml\"\u003ehttps://waylonwalker.com/python/sitemap.xml\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/partial/\"\u003ehttps://waylonwalker.com/python/partial/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"directly-from-the-release-notes\"\u003eDirectly from the release notes \u003ca href=\"#directly-from-the-release-notes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe rest of the post is details directly from the release notes.\u003c/p\u003e\n\u003ch2 id=\"082\"\u003e0.8.2 \u003ca href=\"#082\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: markata installs setuptools required by one dependency\u003c/li\u003e\n\u003cli\u003eFix: cleaup cli output\u003c/li\u003e\n\u003cli\u003eFix: speed up cli starup with some lazy imports\u003c/li\u003e\n\u003cli\u003eFix: all cache.adds were replaced with cache.set\u003c/li\u003e\n\u003cli\u003eFix: Updated to new typer format requiring name=\u003c/li\u003e\n\u003cli\u003eFix: teardown only runs if a the build process was started, i.e. some clis\nwill not need to teardown\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"081\"\u003e0.8.1 \u003ca href=\"#081\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"feeds-have-partials\"\u003eFeeds have partials \u003ca href=\"#feeds-have-partials\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003efeeds\u003c/code\u003e plugin now has configurable \u003ccode\u003epartial_template\u003c/code\u003e that can be used to\nrender only the inside of the feeds page.  This is indended to allow you to\nload small feeds into a page with \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"better-jinja-templates\"\u003eBetter Jinja Templates \u003ca href=\"#better-jinja-templates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eMarkata now fully supports jinja templates with a loader that will load from\nyour templates directory, the markata built-in templates, and from a\ndynamically generated templates directory in your .markata.cache directory.\u003c/p\u003e\n\u003ch4 id=\"cli\"\u003ecli \u003ca href=\"#cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eYou can list out your templates and configuration with the following command\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emarkata templates show\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"variables\"\u003eVariables \u003ca href=\"#variables\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eThe following variables are available within jinja templates for post\ntemplates.  This is now consistent accross all three built in plugins that\nrender jinja templates.\u003c/p\u003e\n\u003ch5 id=\"post-template\"\u003epost_template\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e - the version of markata\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarkata\u003c/code\u003e - the markata instance\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig\u003c/code\u003e - the markata config\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebody\u003c/code\u003e - the body of the post\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epost\u003c/code\u003e - the current post object\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5 id=\"feeds\"\u003efeeds\u003c/h5\u003e\n\u003cp\u003eSimilarly from within rendering feeds.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e - the version of markata\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarkata\u003c/code\u003e - the markata instance\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig\u003c/code\u003e - the markata config\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eposts\u003c/code\u003e - the list of posts\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epost\u003c/code\u003e - a pseudo post object with title, slug, description, and date for template consistency\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efeed\u003c/code\u003e - the current feed object\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5 id=\"jinja-md\"\u003ejinja_md\u003c/h5\u003e\n\u003cp\u003eSimilar to posts from within jinja_md to render a markdown post as a template.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e - the version of markata\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarkata\u003c/code\u003e - the markata instance\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebody\u003c/code\u003e - the body of the post\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig\u003c/code\u003e - the markata config\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epost\u003c/code\u003e - the current post object\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"feeds-cli\"\u003eFeeds cli \u003ca href=\"#feeds-cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eThe feeds cli will help show which templates each feed will be using.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ markata feeds show\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                                          Feeds \u003cspan class=\"m\"\u003e6\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┏━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┃            Feed ┃ posts ┃ config                                                        ┃\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┡━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ project_gallery │ \u003cspan class=\"m\"\u003e2\u003c/span\u003e     │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ title: Project Gallery                                        │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ slug: project-gallery                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ name: project_gallery                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ filter: \u003cspan class=\"s1\"\u003e\u0026#39;project-gallery\u0026#39;\u003c/span\u003e in str\u003cspan class=\"o\"\u003e(\u003c/span\u003epath\u003cspan class=\"o\"\u003e)\u003c/span\u003e                        │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sort: title                                                   │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│            docs │ \u003cspan class=\"m\"\u003e10\u003c/span\u003e    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ title: Documentation                                          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ slug: docs                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ name: docs                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ filter: \u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e not in slug and \u003cspan class=\"s2\"\u003e\u0026#34;tests\u0026#34;\u003c/span\u003e not in slug and ... │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sort: slug                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│         autodoc │ \u003cspan class=\"m\"\u003e17\u003c/span\u003e    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ title: AutoDoc Python Modules.                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ slug: autodoc                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ name: autodoc                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ filter: \u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e in slug and \u003cspan class=\"s2\"\u003e\u0026#34;plugin\u0026#34;\u003c/span\u003e not in slug and \u003cspan class=\"s2\"\u003e\u0026#34;te... │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: slug                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│             all │ 73    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ title: All Markata Modules                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ slug: all                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ name: all                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ filter: True                                                  │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: date                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│    core_modules │ 17    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ title: Markata Core Modules                                   │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ slug: core_modules                                            │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ name: core_modules                                            │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ filter: \u0026#39;plugin\u0026#39; not in slug and \u0026#39;test\u0026#39; not in slug and ti... │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: date                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│         plugins │ 42    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ title: Markata Plugins                                        │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ slug: plugins                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ name: plugins                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ filter: \u0026#39;plugin\u0026#39; in slug and \u0026#39;test\u0026#39; not in slug               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: date                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e└─────────────────┴───────┴───────────────────────────────────────────────────────────────┘\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"080\"\u003e0.8.0 \u003ca href=\"#080\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epydantic support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"pydantic-support\"\u003ePydantic Support \u003ca href=\"#pydantic-support\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eNow plugins are configured through a pydantic Config object.\u003c/p\u003e\n\u003ch3 id=\"breaking-changes\"\u003ebreaking changes \u003ca href=\"#breaking-changes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThere are a number of breaking changes going into 0.8.0. Use caution when\nupgrading.\u003c/p\u003e\n\u003ch4 id=\"glob-config-is-now-under-markataglob\"\u003eglob config is now under markata.glob \u003ca href=\"#glob-config-is-now-under-markataglob\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- [markata]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- glob_patterns = \u0026#34;pages/**/*.md\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ [markata.glob]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ glob_patterns = \u0026#34;pages/**/*.md\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"feeds-are-now-a-list\"\u003eFeeds are now a list \u003ca href=\"#feeds-are-now-a-list\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eFeeds are now a list of Objects within the configuration that you choose from\nwhether its toml or yaml.  Also templates_dir is now configurable, and once you\nhave a templates dir it is better to specify templates by name relative to your\ntemplates_dir.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etemplates_dir\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pages/templates\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003epublished\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etemplate\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;archive_template.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecard_template\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;feed_card.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026lt;=today and templateKey in [\u0026#39;blog-post\u0026#39;, \u0026#39;til\u0026#39;] and status.lower()==\u0026#39;published\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eold\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003epublished\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etemplate\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pages/templates/archive_template.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecard_template\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pages/templates/feed_card.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026lt;=today and templateKey in [\u0026#39;blog-post\u0026#39;, \u0026#39;til\u0026#39;] and status.lower()==\u0026#39;published\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enew\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"markatasummaryfilter-count-is-now-a-list\"\u003emarkata.summary.filter_count is now a list \u003ca href=\"#markatasummaryfilter-count-is-now-a-list\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe old way was to set up a dict, where the keys were the name, now its a list\nof Objects with an explicit name field.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esummary\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efilter_count\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003edrafts\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;published == \u0026#39;False\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;red\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eOld\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esummary\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efilter_count\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;drafts\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;published == \u0026#39;False\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;red\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI realize that I never did a post on markata  0.8.0, so here it is. 0.8.0 was\nreleased on Jan 2, 2024, just over a year ago at this point.  This was the\nrelease that we got pydantic support, and multi feeds.\n\n![screenshot-2025-02-01T02-37-59-690Z.png](/api/file/76e6f022-360f-4566-9b35-a06cecd48738.png){.more-cinematic}\n\n## Pydantic Support Was kinda big\n\nMarkata is leaning on pydanttic for configuration and Post models.  These\nmodels are filled with validators such that you can give it an empty markdown\npost and it will figure out some pretty sane default values for the\nfrontmatter. From there you can progressivly enhance your post with more\ninformation like title, date, tags, slug, description.\n\n\u003e **validators are awesome!!** for instance I don't set the description on many\n\u003e of my posts by hand, I let the auto_description grab the first bit of text\n\u003e from the post most of the time.\n\n## Multi Feeds\n\nMarkata==0.8.1 brought multiple feeds into the mix, and started to take place\nof rss and sitemap.  Feeds are a list of posts that are configured with a slug,\nfilter, sort, reverse, description, and a template.  These feeds then become\nobjects you can use to access posts, as well as html pages, rss feeds and\nsitemaps.\n\n## Jinja Templates\n\nThe final major change within this series is the change out from string\ntemplates to proper jinja templates with partial templates that you can\ninclude.  This has made maintaing templates much easier, as well as the ability\nto customize.  Markata will load templates from both your local templates\ndirectory then from its built in templates directory if it does not find a\ntemplate locally.\n\n``` toml\n[[markata.feeds]]\nslug = 'python'\nfilter = \"date\u003c=today and 'python' in str(tags).lower()\"\nsort = \"date\"\nreverse = true\ndescription = 'A feed of all my python posts'\n```\n\n* \u003chttps://waylonwalker.com/python/\u003e\n* \u003chttps://waylonwalker.com/python/rss.xml\u003e\n* \u003chttps://waylonwalker.com/python/sitemap.xml\u003e\n* \u003chttps://waylonwalker.com/python/partial/\u003e\n\n---\n\n## Directly from the release notes\n\nThe rest of the post is details directly from the release notes.\n\n## 0.8.2\n\n* Fix: markata installs setuptools required by one dependency\n* Fix: cleaup cli output\n* Fix: speed up cli starup with some lazy imports\n* Fix: all cache.adds were replaced with cache.set\n* Fix: Updated to new typer format requiring name=\n* Fix: teardown only runs if a the build process was started, i.e. some clis\n  will not need to teardown\n\n## 0.8.1\n\n### Feeds have partials\n\nThe `feeds` plugin now has configurable `partial_template` that can be used to\nrender only the inside of the feeds page.  This is indended to allow you to\nload small feeds into a page with htmx.\n\n### Better Jinja Templates\n\nMarkata now fully supports jinja templates with a loader that will load from\nyour templates directory, the markata built-in templates, and from a\ndynamically generated templates directory in your .markata.cache directory.\n\n#### cli\n\nYou can list out your templates and configuration with the following command\n\n``` bash\nmarkata templates show\n```\n\n#### Variables\n\nThe following variables are available within jinja templates for post\ntemplates.  This is now consistent accross all three built in plugins that\nrender jinja templates.\n\n##### post_template\n\n* `__version__` - the version of markata\n* `markata` - the markata instance\n* `config` - the markata config\n* `body` - the body of the post\n* `post` - the current post object\n\n##### feeds\n\nSimilarly from within rendering feeds.\n\n* `__version__` - the version of markata\n* `markata` - the markata instance\n* `config` - the markata config\n* `posts` - the list of posts\n* `post` - a pseudo post object with title, slug, description, and date for template consistency\n* `feed` - the current feed object\n\n##### jinja_md\n\nSimilar to posts from within jinja_md to render a markdown post as a template.\n\n* `__version__` - the version of markata\n* `markata` - the markata instance\n* `body` - the body of the post\n* `config` - the markata config\n* `post` - the current post object\n\n#### Feeds cli\n\nThe feeds cli will help show which templates each feed will be using.\n\n``` bash\n❯ markata feeds show\n                                          Feeds 6\n┏━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃            Feed ┃ posts ┃ config                                                        ┃\n┡━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ project_gallery │ 2     │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Project Gallery                                        │\n│                 │       │ slug: project-gallery                                         │\n│                 │       │ name: project_gallery                                         │\n│                 │       │ filter: 'project-gallery' in str(path)                        │\n│                 │       │ sort: title                                                   │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│            docs │ 10    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Documentation                                          │\n│                 │       │ slug: docs                                                    │\n│                 │       │ name: docs                                                    │\n│                 │       │ filter: \"markata\" not in slug and \"tests\" not in slug and ... │\n│                 │       │ sort: slug                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│         autodoc │ 17    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: AutoDoc Python Modules.                                │\n│                 │       │ slug: autodoc                                                 │\n│                 │       │ name: autodoc                                                 │\n│                 │       │ filter: \"markata\" in slug and \"plugin\" not in slug and \"te... │\n│                 │       │ sort: slug                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│             all │ 73    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: All Markata Modules                                    │\n│                 │       │ slug: all                                                     │\n│                 │       │ name: all                                                     │\n│                 │       │ filter: True                                                  │\n│                 │       │ sort: date                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│    core_modules │ 17    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Markata Core Modules                                   │\n│                 │       │ slug: core_modules                                            │\n│                 │       │ name: core_modules                                            │\n│                 │       │ filter: 'plugin' not in slug and 'test' not in slug and ti... │\n│                 │       │ sort: date                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│         plugins │ 42    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Markata Plugins                                        │\n│                 │       │ slug: plugins                                                 │\n│                 │       │ name: plugins                                                 │\n│                 │       │ filter: 'plugin' in slug and 'test' not in slug               │\n│                 │       │ sort: date                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n└─────────────────┴───────┴───────────────────────────────────────────────────────────────┘\n```\n\n## 0.8.0\n\n* pydantic support\n\n### Pydantic Support\n\nNow plugins are configured through a pydantic Config object.\n\n### breaking changes\n\nThere are a number of breaking changes going into 0.8.0. Use caution when\nupgrading.\n\n#### glob config is now under markata.glob\n\n```diff\n- [markata]\n- glob_patterns = \"pages/**/*.md\"\n+ [markata.glob]\n+ glob_patterns = \"pages/**/*.md\"\n```\n\n#### Feeds are now a list\n\nFeeds are now a list of Objects within the configuration that you choose from\nwhether its toml or yaml.  Also templates_dir is now configurable, and once you\nhave a templates dir it is better to specify templates by name relative to your\ntemplates_dir.\n\n```toml\n[markata]\ntemplates_dir = \"pages/templates\"\n\n[markata.feeds.published]\ntemplate=\"archive_template.html\"\ncard_template = \"feed_card.html\"\nfilter=\"date\u003c=today and templateKey in ['blog-post', 'til'] and status.lower()=='published'\"\nsort=\"date\"\n```\n\n\u003e old\n\n```toml\n[[markata.feeds.published]]\ntemplate=\"pages/templates/archive_template.html\"\ncard_template = \"pages/templates/feed_card.html\"\nfilter=\"date\u003c=today and templateKey in ['blog-post', 'til'] and status.lower()=='published'\"\nsort=\"date\"\n```\n\n\u003e new\n\n### markata.summary.filter_count is now a list\n\nThe old way was to set up a dict, where the keys were the name, now its a list\nof Objects with an explicit name field.\n\n```toml\n[markata.summary.filter_count.drafts]\nfilter=\"published == 'False'\"\ncolor='red'\n```\n\n\u003e Old\n\n```toml\n[[markata.summary.filter_count]]\nname='drafts'\nfilter=\"published == 'False'\"\ncolor='red'\n```\n",
      "summary": "I realize that I never did a post on markata 0.8.0, so here it is. 0.8.0 was released on Jan 2, 2024, just over a year ago at this point. This was the...",
      "date_published": "2025-01-31T20:17:00Z",
      "date_modified": "2025-01-31T20:17:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://waylonwalker.com/markata-0-8-0/",
      "url": "https://waylonwalker.com/markata-0-8-0/",
      "title": "markata 0.8.0",
      "content_html": "\u003cp\u003eI realize that I never did a post on markata  0.8.0, so here it is. 0.8.0 was\nreleased on Jan 2, 2024, just over a year ago at this point.  This was the\nrelease that we got pydantic support, and multi feeds.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/file/76e6f022-360f-4566-9b35-a06cecd48738.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-02-01T02-37-59-690Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/file/76e6f022-360f-4566-9b35-a06cecd48738.png\" alt=\"screenshot-2025-02-01T02-37-59-690Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-02-01T02-37-59-690Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"pydantic-support-was-kinda-big\"\u003ePydantic Support Was kinda big \u003ca href=\"#pydantic-support-was-kinda-big\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMarkata is leaning on pydantic for configuration and Post models.  These\nmodels are filled with validators such that you can give it an empty markdown\npost and it will figure out some pretty sane default values for the\nfrontmatter. From there you can progressively enhance your post with more\ninformation like title, date, tags, slug, description.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003evalidators are awesome!!\u003c/strong\u003e for instance I don’t set the description on many\nof my posts by hand, I let the auto_description grab the first bit of text\nfrom the post most of the time.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"multi-feeds\"\u003eMulti Feeds \u003ca href=\"#multi-feeds\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMarkata==0.8.1 brought multiple feeds into the mix, and started to take place\nof RSS and sitemap.  Feeds are a list of posts that are configured with a slug,\nfilter, sort, reverse, description, and a template.  These feeds then become\nobjects you can use to access posts, as well as \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e pages, RSS feeds and\nsitemaps.\u003c/p\u003e\n\u003ch2 id=\"jinja-templates\"\u003eJinja Templates \u003ca href=\"#jinja-templates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe final major change within this series is the change out from string\ntemplates to proper jinja templates with partial templates that you can\ninclude.  This has made maintaining templates much easier, as well as the\nability to customize.  Markata will load templates from both your local\ntemplates directory then from its built in templates directory if it does not\nfind a template locally.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eslug\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;python\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;date\u0026lt;=today and \u0026#39;python\u0026#39; in str(tags).lower()\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;date\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ereverse\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edescription\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;A feed of all my python posts\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/\"\u003ehttps://waylonwalker.com/python/\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/rss.xml\"\u003ehttps://waylonwalker.com/python/rss.xml\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/sitemap.xml\"\u003ehttps://waylonwalker.com/python/sitemap.xml\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://waylonwalker.com/python/partial/\"\u003ehttps://waylonwalker.com/python/partial/\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003ch2 id=\"directly-from-the-release-notes\"\u003eDirectly from the release notes \u003ca href=\"#directly-from-the-release-notes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe rest of the post is details directly from the release notes.\u003c/p\u003e\n\u003ch2 id=\"082\"\u003e0.8.2 \u003ca href=\"#082\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: markata installs setuptools required by one dependency\u003c/li\u003e\n\u003cli\u003eFix: cleanup cli output\u003c/li\u003e\n\u003cli\u003eFix: speed up cli startup with some lazy imports\u003c/li\u003e\n\u003cli\u003eFix: all cache.adds were replaced with cache.set\u003c/li\u003e\n\u003cli\u003eFix: Updated to new typer format requiring name=\u003c/li\u003e\n\u003cli\u003eFix: teardown only runs if the build process was started, i.e. some cli’s\nwill not need to teardown\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"081\"\u003e0.8.1 \u003ca href=\"#081\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003ch3 id=\"feeds-have-partials\"\u003eFeeds have partials \u003ca href=\"#feeds-have-partials\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003efeeds\u003c/code\u003e plugin now has configurable \u003ccode\u003epartial_template\u003c/code\u003e that can be used to\nrender only the inside of the feeds page.  This is indented to allow you to\nload small feeds into a page with \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"better-jinja-templates\"\u003eBetter Jinja Templates \u003ca href=\"#better-jinja-templates\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eMarkata now fully supports jinja templates with a loader that will load from\nyour templates directory, the markata built-in templates, and from a\ndynamically generated templates directory in your .markata.cache directory.\u003c/p\u003e\n\u003ch4 id=\"cli\"\u003ecli \u003ca href=\"#cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eYou can list out your templates and configuration with the following command\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emarkata templates show\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"variables\"\u003eVariables \u003ca href=\"#variables\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eThe following variables are available within jinja templates for post\ntemplates.  This is now consistent across all three built in plugins that\nrender jinja templates.\u003c/p\u003e\n\u003ch5 id=\"post-template\"\u003epost_template\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e - the version of markata\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarkata\u003c/code\u003e - the markata instance\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig\u003c/code\u003e - the markata config\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebody\u003c/code\u003e - the body of the post\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epost\u003c/code\u003e - the current post object\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5 id=\"feeds\"\u003efeeds\u003c/h5\u003e\n\u003cp\u003eSimilarly from within rendering feeds.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e - the version of markata\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarkata\u003c/code\u003e - the markata instance\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig\u003c/code\u003e - the markata config\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eposts\u003c/code\u003e - the list of posts\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epost\u003c/code\u003e - a pseudo post object with title, slug, description, and date for template consistency\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efeed\u003c/code\u003e - the current feed object\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch5 id=\"jinja-md\"\u003ejinja_md\u003c/h5\u003e\n\u003cp\u003eSimilar to posts from within jinja_md to render a markdown post as a template.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e__version__\u003c/code\u003e - the version of markata\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarkata\u003c/code\u003e - the markata instance\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebody\u003c/code\u003e - the body of the post\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003econfig\u003c/code\u003e - the markata config\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epost\u003c/code\u003e - the current post object\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"feeds-cli\"\u003eFeeds cli \u003ca href=\"#feeds-cli\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eThe feeds cli will help show which templates each feed will be using.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ markata feeds show\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                                          Feeds \u003cspan class=\"m\"\u003e6\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┏━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┃            Feed ┃ posts ┃ config                                                        ┃\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e┡━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ project_gallery │ \u003cspan class=\"m\"\u003e2\u003c/span\u003e     │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ title: Project Gallery                                        │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ slug: project-gallery                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ name: project_gallery                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ filter: \u003cspan class=\"s1\"\u003e\u0026#39;project-gallery\u0026#39;\u003c/span\u003e in str\u003cspan class=\"o\"\u003e(\u003c/span\u003epath\u003cspan class=\"o\"\u003e)\u003c/span\u003e                        │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sort: title                                                   │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│            docs │ \u003cspan class=\"m\"\u003e10\u003c/span\u003e    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ title: Documentation                                          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ slug: docs                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ name: docs                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ filter: \u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e not in slug and \u003cspan class=\"s2\"\u003e\u0026#34;tests\u0026#34;\u003c/span\u003e not in slug and ... │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sort: slug                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│         autodoc │ \u003cspan class=\"m\"\u003e17\u003c/span\u003e    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ title: AutoDoc Python Modules.                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ slug: autodoc                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ name: autodoc                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                 │       │ filter: \u003cspan class=\"s2\"\u003e\u0026#34;markata\u0026#34;\u003c/span\u003e in slug and \u003cspan class=\"s2\"\u003e\u0026#34;plugin\u0026#34;\u003c/span\u003e not in slug and \u003cspan class=\"s2\"\u003e\u0026#34;te... │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: slug                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│             all │ 73    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ title: All Markata Modules                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ slug: all                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ name: all                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ filter: True                                                  │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: date                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│    core_modules │ 17    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ title: Markata Core Modules                                   │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ slug: core_modules                                            │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ name: core_modules                                            │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ filter: \u0026#39;plugin\u0026#39; not in slug and \u0026#39;test\u0026#39; not in slug and ti... │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: date                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│         plugins │ 42    │ DEFAULT_TITLE: All Posts                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ title: Markata Plugins                                        │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ slug: plugins                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ name: plugins                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ filter: \u0026#39;plugin\u0026#39; in slug and \u0026#39;test\u0026#39; not in slug               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sort: date                                                    │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ reverse: False                                                │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss: True                                                     │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap: True                                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ card_template: card.html                                      │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ template: feed.html                                           │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ rss_template: rss.xml                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ sitemap_template: sitemap.xml                                 │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │ xsl_template: rss.xsl                                         │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e│                 │       │                                                               │\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e└─────────────────┴───────┴───────────────────────────────────────────────────────────────┘\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"080\"\u003e0.8.0 \u003ca href=\"#080\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003epydantic support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"pydantic-support\"\u003ePydantic Support \u003ca href=\"#pydantic-support\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eNow plugins are configured through a pydantic Config object.\u003c/p\u003e\n\u003ch3 id=\"breaking-changes\"\u003ebreaking changes \u003ca href=\"#breaking-changes\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThere are a number of breaking changes going into 0.8.0. Use caution when\nupgrading.\u003c/p\u003e\n\u003ch4 id=\"glob-config-is-now-under-markataglob\"\u003eglob config is now under markata.glob \u003ca href=\"#glob-config-is-now-under-markataglob\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- [markata]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gd\"\u003e- glob_patterns = \u0026#34;pages/**/*.md\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ [markata.glob]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"gi\"\u003e+ glob_patterns = \u0026#34;pages/**/*.md\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch4 id=\"feeds-are-now-a-list\"\u003eFeeds are now a list \u003ca href=\"#feeds-are-now-a-list\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h4\u003e\n\u003cp\u003eFeeds are now a list of Objects within the configuration that you choose from\nwhether its toml or yaml.  Also templates_dir is now configurable, and once you\nhave a templates dir it is better to specify templates by name relative to your\ntemplates_dir.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etemplates_dir\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pages/templates\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003epublished\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etemplate\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;archive_template.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecard_template\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;feed_card.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026lt;=today and templateKey in [\u0026#39;blog-post\u0026#39;, \u0026#39;til\u0026#39;] and status.lower()==\u0026#39;published\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eold\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efeeds\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003epublished\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003etemplate\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;pages/templates/archive_template.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecard_template\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;pages/templates/feed_card.html\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026lt;=today and templateKey in [\u0026#39;blog-post\u0026#39;, \u0026#39;til\u0026#39;] and status.lower()==\u0026#39;published\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esort\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;date\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003enew\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3 id=\"markatasummaryfilter-count-is-now-a-list\"\u003emarkata.summary.filter_count is now a list \u003ca href=\"#markatasummaryfilter-count-is-now-a-list\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h3\u003e\n\u003cp\u003eThe old way was to set up a dict, where the keys were the name, now its a list\nof Objects with an explicit name field.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esummary\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efilter_count\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003edrafts\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;published == \u0026#39;False\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;red\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eOld\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[[\u003c/span\u003e\u003cspan class=\"nx\"\u003emarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003esummary\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003efilter_count\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ename\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;drafts\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003efilter\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;published == \u0026#39;False\u0026#39;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ecolor\u003c/span\u003e\u003cspan class=\"p\"\u003e=\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;red\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI realize that I never did a post on markata  0.8.0, so here it is. 0.8.0 was\nreleased on Jan 2, 2024, just over a year ago at this point.  This was the\nrelease that we got pydantic support, and multi feeds.\n\n![screenshot-2025-02-01T02-37-59-690Z.png](https://dropper.waylonwalker.com/file/76e6f022-360f-4566-9b35-a06cecd48738.png){.more-cinematic}\n\n## Pydantic Support Was kinda big\n\nMarkata is leaning on pydantic for configuration and Post models.  These\nmodels are filled with validators such that you can give it an empty markdown\npost and it will figure out some pretty sane default values for the\nfrontmatter. From there you can progressively enhance your post with more\ninformation like title, date, tags, slug, description.\n\n\u003e **validators are awesome!!** for instance I don't set the description on many\n\u003e of my posts by hand, I let the auto_description grab the first bit of text\n\u003e from the post most of the time.\n\n## Multi Feeds\n\nMarkata==0.8.1 brought multiple feeds into the mix, and started to take place\nof RSS and sitemap.  Feeds are a list of posts that are configured with a slug,\nfilter, sort, reverse, description, and a template.  These feeds then become\nobjects you can use to access posts, as well as html pages, RSS feeds and\nsitemaps.\n\n## Jinja Templates\n\nThe final major change within this series is the change out from string\ntemplates to proper jinja templates with partial templates that you can\ninclude.  This has made maintaining templates much easier, as well as the\nability to customize.  Markata will load templates from both your local\ntemplates directory then from its built in templates directory if it does not\nfind a template locally.\n\n``` toml\n[[markata.feeds]]\nslug = 'python'\nfilter = \"date\u003c=today and 'python' in str(tags).lower()\"\nsort = \"date\"\nreverse = true\ndescription = 'A feed of all my python posts'\n```\n\n* \u003chttps://waylonwalker.com/python/\u003e\n* \u003chttps://waylonwalker.com/python/rss.xml\u003e\n* \u003chttps://waylonwalker.com/python/sitemap.xml\u003e\n* \u003chttps://waylonwalker.com/python/partial/\u003e\n\n---\n\n## Directly from the release notes\n\nThe rest of the post is details directly from the release notes.\n\n## 0.8.2\n\n* Fix: markata installs setuptools required by one dependency\n* Fix: cleanup cli output\n* Fix: speed up cli startup with some lazy imports\n* Fix: all cache.adds were replaced with cache.set\n* Fix: Updated to new typer format requiring name=\n* Fix: teardown only runs if the build process was started, i.e. some cli's\n  will not need to teardown\n\n## 0.8.1\n\n### Feeds have partials\n\nThe `feeds` plugin now has configurable `partial_template` that can be used to\nrender only the inside of the feeds page.  This is indented to allow you to\nload small feeds into a page with htmx.\n\n### Better Jinja Templates\n\nMarkata now fully supports jinja templates with a loader that will load from\nyour templates directory, the markata built-in templates, and from a\ndynamically generated templates directory in your .markata.cache directory.\n\n#### cli\n\nYou can list out your templates and configuration with the following command\n\n``` bash\nmarkata templates show\n```\n\n#### Variables\n\nThe following variables are available within jinja templates for post\ntemplates.  This is now consistent across all three built in plugins that\nrender jinja templates.\n\n##### post_template\n\n* `__version__` - the version of markata\n* `markata` - the markata instance\n* `config` - the markata config\n* `body` - the body of the post\n* `post` - the current post object\n\n##### feeds\n\nSimilarly from within rendering feeds.\n\n* `__version__` - the version of markata\n* `markata` - the markata instance\n* `config` - the markata config\n* `posts` - the list of posts\n* `post` - a pseudo post object with title, slug, description, and date for template consistency\n* `feed` - the current feed object\n\n##### jinja_md\n\nSimilar to posts from within jinja_md to render a markdown post as a template.\n\n* `__version__` - the version of markata\n* `markata` - the markata instance\n* `body` - the body of the post\n* `config` - the markata config\n* `post` - the current post object\n\n#### Feeds cli\n\nThe feeds cli will help show which templates each feed will be using.\n\n``` bash\n❯ markata feeds show\n                                          Feeds 6\n┏━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃            Feed ┃ posts ┃ config                                                        ┃\n┡━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ project_gallery │ 2     │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Project Gallery                                        │\n│                 │       │ slug: project-gallery                                         │\n│                 │       │ name: project_gallery                                         │\n│                 │       │ filter: 'project-gallery' in str(path)                        │\n│                 │       │ sort: title                                                   │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│            docs │ 10    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Documentation                                          │\n│                 │       │ slug: docs                                                    │\n│                 │       │ name: docs                                                    │\n│                 │       │ filter: \"markata\" not in slug and \"tests\" not in slug and ... │\n│                 │       │ sort: slug                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│         autodoc │ 17    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: AutoDoc Python Modules.                                │\n│                 │       │ slug: autodoc                                                 │\n│                 │       │ name: autodoc                                                 │\n│                 │       │ filter: \"markata\" in slug and \"plugin\" not in slug and \"te... │\n│                 │       │ sort: slug                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│             all │ 73    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: All Markata Modules                                    │\n│                 │       │ slug: all                                                     │\n│                 │       │ name: all                                                     │\n│                 │       │ filter: True                                                  │\n│                 │       │ sort: date                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│    core_modules │ 17    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Markata Core Modules                                   │\n│                 │       │ slug: core_modules                                            │\n│                 │       │ name: core_modules                                            │\n│                 │       │ filter: 'plugin' not in slug and 'test' not in slug and ti... │\n│                 │       │ sort: date                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n│         plugins │ 42    │ DEFAULT_TITLE: All Posts                                      │\n│                 │       │ title: Markata Plugins                                        │\n│                 │       │ slug: plugins                                                 │\n│                 │       │ name: plugins                                                 │\n│                 │       │ filter: 'plugin' in slug and 'test' not in slug               │\n│                 │       │ sort: date                                                    │\n│                 │       │ reverse: False                                                │\n│                 │       │ rss: True                                                     │\n│                 │       │ sitemap: True                                                 │\n│                 │       │ card_template: card.html                                      │\n│                 │       │ template: feed.html                                           │\n│                 │       │ rss_template: rss.xml                                         │\n│                 │       │ sitemap_template: sitemap.xml                                 │\n│                 │       │ xsl_template: rss.xsl                                         │\n│                 │       │                                                               │\n└─────────────────┴───────┴───────────────────────────────────────────────────────────────┘\n```\n\n## 0.8.0\n\n* pydantic support\n\n### Pydantic Support\n\nNow plugins are configured through a pydantic Config object.\n\n### breaking changes\n\nThere are a number of breaking changes going into 0.8.0. Use caution when\nupgrading.\n\n#### glob config is now under markata.glob\n\n```diff\n- [markata]\n- glob_patterns = \"pages/**/*.md\"\n+ [markata.glob]\n+ glob_patterns = \"pages/**/*.md\"\n```\n\n#### Feeds are now a list\n\nFeeds are now a list of Objects within the configuration that you choose from\nwhether its toml or yaml.  Also templates_dir is now configurable, and once you\nhave a templates dir it is better to specify templates by name relative to your\ntemplates_dir.\n\n```toml\n[markata]\ntemplates_dir = \"pages/templates\"\n\n[markata.feeds.published]\ntemplate=\"archive_template.html\"\ncard_template = \"feed_card.html\"\nfilter=\"date\u003c=today and templateKey in ['blog-post', 'til'] and status.lower()=='published'\"\nsort=\"date\"\n```\n\n\u003e old\n\n```toml\n[[markata.feeds.published]]\ntemplate=\"pages/templates/archive_template.html\"\ncard_template = \"pages/templates/feed_card.html\"\nfilter=\"date\u003c=today and templateKey in ['blog-post', 'til'] and status.lower()=='published'\"\nsort=\"date\"\n```\n\n\u003e new\n\n### markata.summary.filter_count is now a list\n\nThe old way was to set up a dict, where the keys were the name, now its a list\nof Objects with an explicit name field.\n\n```toml\n[markata.summary.filter_count.drafts]\nfilter=\"published == 'False'\"\ncolor='red'\n```\n\n\u003e Old\n\n```toml\n[[markata.summary.filter_count]]\nname='drafts'\nfilter=\"published == 'False'\"\ncolor='red'\n```\n",
      "summary": "I realize that I never did a post on markata 0.8.0, so here it is. 0.8.0 was released on Jan 2, 2024, just over a year ago at this point. This was the...",
      "date_published": "2025-01-31T20:17:00Z",
      "date_modified": "2025-01-31T20:17:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markata"
      ]
    },
    {
      "id": "https://waylonwalker.com/asottile-all-repos/",
      "url": "https://waylonwalker.com/asottile-all-repos/",
      "title": "⭐ asottile all-repos",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/asottile\" 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\"\u003easottile\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/asottile/all-repos\" 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\"\u003eall-repos\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eClone all your repositories and apply sweeping changes.\u003c/p\u003e\n",
      "content_text": "\n[asottile](https://github.com/asottile) has done a fantastic job with [all-repos](https://github.com/asottile/all-repos). Highly recommend taking a look.\n\nClone all your repositories and apply sweeping changes.\n",
      "summary": "asottile has done a fantastic job with all-repos. Highly recommend taking a look.",
      "date_published": "2025-01-31T17:12:20Z",
      "date_modified": "2025-01-31T17:12:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/turbot-tailpipe/",
      "url": "https://waylonwalker.com/turbot-tailpipe/",
      "title": "⭐ turbot tailpipe",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/turbot/tailpipe\" 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\"\u003etailpipe\u003c/a\u003e, created by \u003ca href=\"https://github.com/turbot\" 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\"\u003eturbot\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eselect * from logs; Tailpipe is an open source SIEM for instant log insights, powered by DuckDB. Analyze millions of events in seconds, right from your terminal.\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [tailpipe](https://github.com/turbot/tailpipe), created by [turbot](https://github.com/turbot).\n\nselect * from logs; Tailpipe is an open source SIEM for instant log insights, powered by DuckDB. Analyze millions of events in seconds, right from your terminal.\n",
      "summary": "If you're into interesting projects, don't miss out on tailpipe, created by turbot.",
      "date_published": "2025-01-31T17:05:00Z",
      "date_modified": "2025-01-31T17:05:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/muni-town-roomy/",
      "url": "https://waylonwalker.com/muni-town-roomy/",
      "title": "⭐ muni-town roomy",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/muni-town/roomy\" 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\"\u003eroomy\u003c/a\u003e by \u003ca href=\"https://github.com/muni-town\" 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\"\u003emuni-town\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eATproto-connected p2p group comms\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [roomy](https://github.com/muni-town/roomy) by [muni-town](https://github.com/muni-town), and it's truly impressive.\n\nATproto-connected p2p group comms\n",
      "summary": "I recently discovered roomy by muni-town, and it's truly impressive.",
      "date_published": "2025-01-31T17:02:22Z",
      "date_modified": "2025-01-31T17:02:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-546/",
      "url": "https://waylonwalker.com/thought-546/",
      "title": "💭 Behold, the Steam Brick | Rock Paper Shotgun",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.rockpapershotgun.com/behold-the-steam-brick\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://assetsio.gnwcdn.com/steam-brick.jpg?width=1200\u0026amp;height=630\u0026amp;fit=crop\u0026amp;enable=upscale\u0026amp;auto=webp\" alt=\"Behold, the Steam Brick — A modder has transformed the Steam Deck in a screen-less, controller-less Steam Brick.\" loading=\"lazy\"/ width=\"1200\" data-glightbox=\"description: Behold, the Steam Brick — A modder has transformed the Steam Deck in a screen-less, controller-less Steam Brick.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBehold, the Steam Brick\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA modder has transformed the Steam Deck in a screen-less, controller-less Steam Brick.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eRock Paper Shotgun · rockpapershotgun.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI fully believe in our right to repair, ewaste reduction, and bringing a second life to still good hardware that is not up for it’s originally intended purpose.  This is a sick console like experience you can strap to the back of a tv, throw in your back to take on a trip, or leave stuffed in your vehicle to game in the backseat.  Sucks that it cant do 4k, but I’ve used mine on large screens, and it does quite well for a lot of games, maybe not AAA, but the cartoony multplayer games I play with my kids do quite well.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f3114f19-21cd-4ee6-84a8-06b83346d052.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f3114f19-21cd-4ee6-84a8-06b83346d052.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.rockpapershotgun.com/behold-the-steam-brick\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://assetsio.gnwcdn.com/steam-brick.jpg?width=1200\u0026amp;height=630\u0026amp;fit=crop\u0026amp;enable=upscale\u0026amp;auto=webp\" alt=\"Behold, the Steam Brick — A modder has transformed the Steam Deck in a screen-less, controller-less Steam Brick.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBehold, the Steam Brick\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA modder has transformed the Steam Deck in a screen-less, controller-less Steam Brick.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eRock Paper Shotgun \u0026middot; rockpapershotgun.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI fully believe in our right to repair, ewaste reduction, and bringing a second life to still good hardware that is not up for it's originally intended purpose.  This is a sick console like experience you can strap to the back of a tv, throw in your back to take on a trip, or leave stuffed in your vehicle to game in the backseat.  Sucks that it cant do 4k, but I've used mine on large screens, and it does quite well for a lot of games, maybe not AAA, but the cartoony multplayer games I play with my kids do quite well.\n\n![image](https://dropper.waylonwalker.com/api/file/f3114f19-21cd-4ee6-84a8-06b83346d052.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.rockpapershotgun.com/behold-the-steam-brick",
      "date_published": "2025-01-31T13:27:21Z",
      "date_modified": "2025-01-31T13:27:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "pc",
        "steamdeck",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-545/",
      "url": "https://waylonwalker.com/thought-545/",
      "title": "💭 OpenAI Is Actually Terrible - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"2D9ON1ZQhnA\" title=\"OpenAI Is Actually Terrible\" playlabel=\"Play: OpenAI Is Actually Terrible\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDamn these deepseek memes go hard. Wild to see openai get played by their own game.\u003c/p\u003e\n\u003cp\u003eIt’s crazy that the normie news that I have seen on deepseek shows that the Chinese made what the Americans did at a fraction of the price, without taking notice that they are building on the shoulders of openai.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"2D9ON1ZQhnA\" title=\"OpenAI Is Actually Terrible\" playlabel=\"Play: OpenAI Is Actually Terrible\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDamn these deepseek memes go hard. Wild to see openai get played by their own game.\n\nIt's crazy that the normie news that I have seen on deepseek shows that the Chinese made what the Americans did at a fraction of the price, without taking notice that they are building on the shoulders of openai.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=2D9ON1ZQhnA\u0026t=359s",
      "date_published": "2025-01-31T03:46:29Z",
      "date_modified": "2025-01-31T03:46:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/markata-search/",
      "url": "https://waylonwalker.com/markata-search/",
      "title": "markata search",
      "content_html": "\u003cp\u003eA side effect of \u003ca href=\"/markata-didyoumean/\" class=\"wikilink\" data-title=\"Markata DidYouMean\" data-description=\"Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...\" data-date=\"2025-01-29\" data-preview=\"Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...\"\u003eMarkata DidYouMean\u003c/a\u003e is that we are able to implement some\nrudimentary search based on slug, title, tags, and description.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png\" alt=\"screenshot-2025-01-31T14-50-00-094Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T14-50-00-094Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI made a video of the early work on using this side effect to search for content on markata.dev.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.mp4\" class=\"glightbox-link\" aria-label=\"Replay markata-search-1.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.mp4\" type=\"video/mp4\"\u003eReplay markata-search-1.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThis was first implemented to solve 404 pages giving users a way to try to find\nthe page that they tried to access.  But it turned out to be a decent way to\nsearch through the docs.\u003c/p\u003e\n",
      "content_text": "\nA side effect of \u003ca href=\"/markata-didyoumean/\" class=\"wikilink\" data-title=\"Markata DidYouMean\" data-description=\"Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...\" data-date=\"2025-01-29\"\u003eMarkata DidYouMean\u003c/a\u003e is that we are able to implement some\nrudimentary search based on slug, title, tags, and description.\n\n![screenshot-2025-01-31T14-50-00-094Z.png](https://dropper.waylonwalker.com/api/file/50cfa8dc-9d46-4f02-877b-688fa5510a83.png){.more-cinematic}\n\nI made a video of the early work on using this side effect to search for content on markata.dev.\n\n![Replay markata-search-1.mp4](https://dropper.waylonwalker.com/api/file/fd677374-5ef1-41c7-8845-6de0e10f224b.mp4)\n\nThis was first implemented to solve 404 pages giving users a way to try to find\nthe page that they tried to access.  But it turned out to be a decent way to\nsearch through the docs.\n",
      "summary": "A side effect of markata-didyoumean is that we are able to implement some rudimentary search based on slug, title, tags, and description.",
      "date_published": "2025-01-30T20:21:36Z",
      "date_modified": "2025-01-30T20:21:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "markata",
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-544/",
      "url": "https://waylonwalker.com/thought-544/",
      "title": "💭 AI Is Making You An Illiterate Programmer - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"cQNyYx2fZXw\" title=\"AI Is Making You An Illiterate Programmer\" playlabel=\"Play: AI Is Making You An Illiterate Programmer\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003e👏👏👏 This one is really good. I’m right there with him on most of this.  I am very hesitant on subscription models, and all the ai tools feel like they are getting ready to be the next round of death by a thousand cuts, this time with pretty limited free tier and relatively high prices to run.  I’m sure we will see companies get taken by huge bills soon by building off of someone else’s service.\u003c/p\u003e\n\u003cp\u003eOn the flip side I’m definitely the guy that gets in a rut of just copy paste to the ai, wait for codeium to to inject.  I feel like I have issues of momentum more than anything.  When I’m on one side or the other I tend to stick it out for too long, but less so on going without because that llm drug is calling you when you hit a hard problem.\u003c/p\u003e\n\u003cp\u003eI’m excited to see him build out a \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e for llm stuff that he mentioned at the top.  I’m interested, but probably not building one out for myself until we start to see some cheaper maybe used hardware to do it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"cQNyYx2fZXw\" title=\"AI Is Making You An Illiterate Programmer\" playlabel=\"Play: AI Is Making You An Illiterate Programmer\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\n👏👏👏 This one is really good. I'm right there with him on most of this.  I am very hesitant on subscription models, and all the ai tools feel like they are getting ready to be the next round of death by a thousand cuts, this time with pretty limited free tier and relatively high prices to run.  I'm sure we will see companies get taken by huge bills soon by building off of someone else's service.\n\nOn the flip side I'm definitely the guy that gets in a rut of just copy paste to the ai, wait for codeium to to inject.  I feel like I have issues of momentum more than anything.  When I'm on one side or the other I tend to stick it out for too long, but less so on going without because that llm drug is calling you when you hit a hard problem.\n\nI'm excited to see him build out a homelab for llm stuff that he mentioned at the top.  I'm interested, but probably not building one out for myself until we start to see some cheaper maybe used hardware to do it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=cQNyYx2fZXw",
      "date_published": "2025-01-30T14:23:10Z",
      "date_modified": "2025-01-30T14:23:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/markata-didyoumean/",
      "url": "https://waylonwalker.com/markata-didyoumean/",
      "title": "Markata DidYouMean",
      "content_html": "\u003cp\u003eComing in Markata 0.9.1 is far better documentation. i.e. Documentation that\nactually exists for everything.  As part of poking around I realized that I\noften go to look up the docs for a plugin and forget that the path is\n\u003ccode\u003e/markta/plugins/feeds\u003c/code\u003e, sometimes I might try \u003ccode\u003e/markata/feeds\u003c/code\u003e or\n\u003ccode\u003e/plugins/feeds.py\u003c/code\u003e or \u003ccode\u003e/feeds\u003c/code\u003e or I might even forget the plugin name exactly\nand try something like \u003ccode\u003efeed\u003c/code\u003e and get a 404.  So I added a  \u003ccode\u003edidyoumean\u003c/code\u003e plugin\nto markata that takes care of this.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/9c1e92dd-4ea1-4b0f-80bc-e6c3414cf219.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T14-53-31-264Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/9c1e92dd-4ea1-4b0f-80bc-e6c3414cf219.png\" alt=\"screenshot-2025-01-31T14-53-31-264Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T14-53-31-264Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI made a quick recording of this early feature, pay close attention to the url\nas it automatically updates to the correct page.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3e9a1af6-59e0-4d0a-9540-2514c492cc49.mp4\" class=\"glightbox-link\" aria-label=\"markata-didyoumean.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3e9a1af6-59e0-4d0a-9540-2514c492cc49.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3e9a1af6-59e0-4d0a-9540-2514c492cc49.mp4\" type=\"video/mp4\"\u003emarkata-didyoumean.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"happy-path\"\u003eHappy Path \u003ca href=\"#happy-path\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003edirect forward\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIf you have one post called \u003ccode\u003e/markata/plugins/feeds\u003c/code\u003e, and it is the only post\ncalled feeds, any combination of \u003ccode\u003e/markata/feeds\u003c/code\u003e or \u003ccode\u003e/plugins/feeds\u003c/code\u003e or\n\u003ccode\u003e/feeds\u003c/code\u003e will all automatically redirect with an \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e page (not a server 3xx)\nto the \u003ccode\u003e/markata/plugins/feeds\u003c/code\u003e post.\u003c/p\u003e\n\u003cp\u003eHere is the snippet that does the redirect.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ediv\u003c/span\u003e \u003cspan class=\"na\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;container mx-auto px-4 py-8\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003eh1\u003c/span\u003e \u003cspan class=\"na\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;text-2xl font-bold mb-4\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003eRedirecting...\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003eh1\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e \u003cspan class=\"na\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;mb-4\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003eYou will be redirected to \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ea\u003c/span\u003e \u003cspan class=\"na\"\u003ehref\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;/markata/plugins/feeds\u0026#34;\u003c/span\u003e \u003cspan class=\"na\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;text-blue-500 hover:underline\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e/markata/plugins/feeds\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ea\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ep\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\u003cspan class=\"nb\"\u003ewindow\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003elocation\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003ehref\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/markata/plugins/feeds\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003escript\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ediv\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eYou won’t see it unless you are on a really bad network, or you have js\ndisabled, but this is what it would look like if you ever saw it.  Notice there\nis a backup link if you have js disabled.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/52d95c41-e27a-4a6c-be39-5c57601fc33f.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/52d95c41-e27a-4a6c-be39-5c57601fc33f.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"multiple-similar-posts\"\u003eMultiple Similar Posts \u003ca href=\"#multiple-similar-posts\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003elist of options\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eIf you have multiple posts called \u003ccode\u003edidyoumean\u003c/code\u003e from different directories, in\nthe video I made a clashing post at \u003ccode\u003e/markata/cli/didyoumean\u003c/code\u003e with\n\u003ccode\u003e/markata/plugins/didyoumean\u003c/code\u003e.  If you go to \u003ccode\u003e/didyoumean\u003c/code\u003e it will notice that\nthere are multiple options and present you with a list of all of the potential\npages that match.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e05f8314-33a3-4dca-90b0-6009b8642c8a.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e05f8314-33a3-4dca-90b0-6009b8642c8a.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"finally-no-matches\"\u003eFinally No Matches \u003ca href=\"#finally-no-matches\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e404.html\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eLast ditch effort is to implement a 404 page.  This page will know all of the\npossible paths in your project and give you a list of all the similar pages\nmore like a traditional \u003ccode\u003edidyoumean\u003c/code\u003e plugin.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a59c9736-da16-4dce-b867-29679e6b9ec3.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a59c9736-da16-4dce-b867-29679e6b9ec3.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nComing in Markata 0.9.1 is far better documentation. i.e. Documentation that\nactually exists for everything.  As part of poking around I realized that I\noften go to look up the docs for a plugin and forget that the path is\n`/markta/plugins/feeds`, sometimes I might try `/markata/feeds` or\n`/plugins/feeds.py` or `/feeds` or I might even forget the plugin name exactly\nand try something like `feed` and get a 404.  So I added a  `didyoumean` plugin\nto markata that takes care of this.\n\n![screenshot-2025-01-31T14-53-31-264Z.png](https://dropper.waylonwalker.com/api/file/9c1e92dd-4ea1-4b0f-80bc-e6c3414cf219.png){.more-cinematic}\n\nI made a quick recording of this early feature, pay close attention to the url\nas it automatically updates to the correct page.\n\n![markata-didyoumean.mp4](https://dropper.waylonwalker.com/api/file/3e9a1af6-59e0-4d0a-9540-2514c492cc49.mp4)\n\n## Happy Path\n\n_direct forward_\n\nIf you have one post called `/markata/plugins/feeds`, and it is the only post\ncalled feeds, any combination of `/markata/feeds` or `/plugins/feeds` or\n`/feeds` will all automatically redirect with an html page (not a server 3xx)\nto the `/markata/plugins/feeds` post.\n\nHere is the snippet that does the redirect.\n\n``` html\n\u003cdiv class=\"container mx-auto px-4 py-8\"\u003e\n    \u003ch1 class=\"text-2xl font-bold mb-4\"\u003eRedirecting...\u003c/h1\u003e\n    \u003cp class=\"mb-4\"\u003eYou will be redirected to \u003ca href=\"/markata/plugins/feeds\" class=\"text-blue-500 hover:underline\"\u003e/markata/plugins/feeds\u003c/a\u003e\u003c/p\u003e\n    \u003cscript\u003ewindow.location.href = \"/markata/plugins/feeds\";\u003c/script\u003e\n\u003c/div\u003e\n```\n\nYou won't see it unless you are on a really bad network, or you have js\ndisabled, but this is what it would look like if you ever saw it.  Notice there\nis a backup link if you have js disabled.\n\n![image](https://dropper.waylonwalker.com/api/file/52d95c41-e27a-4a6c-be39-5c57601fc33f.webp)\n\n## Multiple Similar Posts\n\n_list of options_\n\nIf you have multiple posts called `didyoumean` from different directories, in\nthe video I made a clashing post at `/markata/cli/didyoumean` with\n`/markata/plugins/didyoumean`.  If you go to `/didyoumean` it will notice that\nthere are multiple options and present you with a list of all of the potential\npages that match.\n\n![image](https://dropper.waylonwalker.com/api/file/e05f8314-33a3-4dca-90b0-6009b8642c8a.webp)\n\n## Finally No Matches\n\n_404.html_\n\nLast ditch effort is to implement a 404 page.  This page will know all of the\npossible paths in your project and give you a list of all the similar pages\nmore like a traditional `didyoumean` plugin.\n\n![image](https://dropper.waylonwalker.com/api/file/a59c9736-da16-4dce-b867-29679e6b9ec3.webp)\n",
      "summary": "Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...",
      "date_published": "2025-01-29T20:28:36Z",
      "date_modified": "2025-01-29T20:28:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-543/",
      "url": "https://waylonwalker.com/thought-543/",
      "title": "💭 Why is Kubernetes everywhere? | Kelsey Hightower - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"MQbkN99eBD8\" title=\"Why is Kubernetes everywhere? | Kelsey Hightower\" playlabel=\"Play: Why is Kubernetes everywhere? | Kelsey Hightower\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eKelsey says several times in this interview, you don’t need kubernetes.  If you are running one node you don’t need kubernetes.  My question though is, would you use kubernetes?  Ya I get it if you are a web developer, data scientist, backend dev, but if you are looking to bee a whole ass engineer, or infrastructure engineer, you know kubernetes, Should you use kubernetes on single node?\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"MQbkN99eBD8\" title=\"Why is Kubernetes everywhere? | Kelsey Hightower\" playlabel=\"Play: Why is Kubernetes everywhere? | Kelsey Hightower\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nKelsey says several times in this interview, you don't need kubernetes.  If you are running one node you don't need kubernetes.  My question though is, would you use kubernetes?  Ya I get it if you are a web developer, data scientist, backend dev, but if you are looking to bee a whole ass engineer, or infrastructure engineer, you know kubernetes, Should you use kubernetes on single node?\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=MQbkN99eBD8",
      "date_published": "2025-01-29T16:28:21Z",
      "date_modified": "2025-01-29T16:28:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-542/",
      "url": "https://waylonwalker.com/thought-542/",
      "title": "💭 Models - Pydantic",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://docs.pydantic.dev/latest/concepts/models/#rebuilding-model-schema\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://pydantic.dev/docs/og/validation/latest/concepts/models.png\" alt=\"Models\" loading=\"lazy\"/ data-glightbox=\"description: Models\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eModels\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePydantic Docs · docs.pydantic.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI came accross from_attributes today it allows creation of pydantic models from objects such as a sqlalchemy  \u003ccode\u003eBase\u003c/code\u003e Model or while nesting pydantic models.  I believe in the past I have ran into some inconsistencies with nesting pydantic models and I’ll bet one had from_attributes set and another did not.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eArbitrary class instances¶\n\u003cem\u003e(Formerly known as “ORM Mode”/from_orm).\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003ePydantic models can also be created from arbitrary class instances by reading the instance \u0026gt; attributes corresponding to the model field names. One common application of this functionality is integration with object-relational mappings (ORMs).\u003c/p\u003e\n\u003cp\u003eTo do this, set the from_attributes config value to True (see the documentation on Configuration for more details).\u003c/p\u003e\n\u003cp\u003eThe example here uses SQLAlchemy, but the same approach should work for any ORM.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://docs.pydantic.dev/latest/concepts/models/#rebuilding-model-schema\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://pydantic.dev/docs/og/validation/latest/concepts/models.png\" alt=\"Models\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eModels\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePydantic Docs \u0026middot; docs.pydantic.dev\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI came accross from_attributes today it allows creation of pydantic models from objects such as a sqlalchemy  `Base` Model or while nesting pydantic models.  I believe in the past I have ran into some inconsistencies with nesting pydantic models and I'll bet one had from_attributes set and another did not.\n\n\u003e Arbitrary class instances¶\n\u003e _(Formerly known as \"ORM Mode\"/from_orm)._\n\u003e \n\u003e Pydantic models can also be created from arbitrary class instances by reading the instance \u003e attributes corresponding to the model field names. One common application of this functionality is integration with object-relational mappings (ORMs).\n\u003e \n\u003e To do this, set the from_attributes config value to True (see the documentation on Configuration for more details).\n\u003e\n\u003e The example here uses SQLAlchemy, but the same approach should work for any ORM.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://docs.pydantic.dev/latest/concepts/models/#rebuilding-model-schema",
      "date_published": "2025-01-28T17:27:20Z",
      "date_modified": "2025-01-28T17:27:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "pydantic",
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-541/",
      "url": "https://waylonwalker.com/thought-541/",
      "title": "💭 If Mitchell Hashimoto succeeds, Tmux \u0026 Zellij will disappear -...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"o-qtso47ECk\" title=\"If Mitchell Hashimoto succeeds, Tmux \u0026amp; Zellij will disappear\" playlabel=\"Play: If Mitchell Hashimoto succeeds, Tmux \u0026amp; Zellij will disappear\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDang strong stance that tmux and zellij should not exist.  I really do get his point though.  Theres a good number of terminal features I often miss out on because I run tmux.  Its an app that runs apps, and doesn’t let all of the signals back to the host.  But its fantastic at what it does, and brings so much to the table that the little bit of downside it brings is well worth it to me.  The other thing missing in this discussion is that I can take my hotkeys and session workflow to any machine just by running tmux.  I do not need to run a certain terminal, or install it headlessly on a server to get special features just for it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"o-qtso47ECk\" title=\"If Mitchell Hashimoto succeeds, Tmux \u0026amp; Zellij will disappear\" playlabel=\"Play: If Mitchell Hashimoto succeeds, Tmux \u0026amp; Zellij will disappear\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDang strong stance that tmux and zellij should not exist.  I really do get his point though.  Theres a good number of terminal features I often miss out on because I run tmux.  Its an app that runs apps, and doesn't let all of the signals back to the host.  But its fantastic at what it does, and brings so much to the table that the little bit of downside it brings is well worth it to me.  The other thing missing in this discussion is that I can take my hotkeys and session workflow to any machine just by running tmux.  I do not need to run a certain terminal, or install it headlessly on a server to get special features just for it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=o-qtso47ECk",
      "date_published": "2025-01-28T13:18:40Z",
      "date_modified": "2025-01-28T13:18:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/cold-builds/",
      "url": "https://waylonwalker.com/cold-builds/",
      "title": "cold builds",
      "content_html": "\u003cp\u003eHere are a list of some cold builds from my site.  I’ve ran this site for a\nlong time and would like to have some references to go back to, and wish I had\nkept a few profiles of cold builds laying around to compare with. The time is\nnow lets keep some cold build links around for reference.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/cd8f9d96-948a-4e94-aa3d-2c352bb5657b.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T21-23-56-725Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/cd8f9d96-948a-4e94-aa3d-2c352bb5657b.png\" alt=\"screenshot-2025-01-31T21-23-56-725Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T21-23-56-725Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"01272025\"\u003e01/27/2025 \u003ca href=\"#01272025\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://ec314b08.waylonwalker-com.pages.dev/_profile/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/ec314b08.waylonwalker-com.pages.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/ec314b08.waylonwalker-com.pages.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://ec314b08.waylonwalker-com.pages.dev/_profile/\u003c/a\u003e - 429s - markata==0.9.0.dev5 has md_video open cache on every post issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://27f117fd.waylonwalker-com.pages.dev/_profile/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/27f117fd.waylonwalker-com.pages.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/27f117fd.waylonwalker-com.pages.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://27f117fd.waylonwalker-com.pages.dev/_profile/\u003c/a\u003e - 112s- markata==0.9.0.dev5 after fixing md_video issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://e6b8f64a.waylonwalker-com.pages.dev/_profile/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/e6b8f64a.waylonwalker-com.pages.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/e6b8f64a.waylonwalker-com.pages.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://e6b8f64a.waylonwalker-com.pages.dev/_profile/\u003c/a\u003e - 16s - markata==0.9.0.dev5 1 post not skipped, this one\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://10b778b4.waylonwalker-com.pages.dev/_profile/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/10b778b4.waylonwalker-com.pages.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/10b778b4.waylonwalker-com.pages.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://10b778b4.waylonwalker-com.pages.dev/_profile/\u003c/a\u003e - 5.65s - markata==0.9.0.dev5 fully hot cache build with no changes\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\nHere are a list of some cold builds from my site.  I've ran this site for a\nlong time and would like to have some references to go back to, and wish I had\nkept a few profiles of cold builds laying around to compare with. The time is\nnow lets keep some cold build links around for reference.\n\n![screenshot-2025-01-31T21-23-56-725Z.png](https://dropper.waylonwalker.com/api/file/cd8f9d96-948a-4e94-aa3d-2c352bb5657b.png){.more-cinematic}\n\n## 01/27/2025\n\n* \u003chttps://ec314b08.waylonwalker-com.pages.dev/_profile/\u003e - 429s - markata==0.9.0.dev5 has md_video open cache on every post issue\n* \u003chttps://27f117fd.waylonwalker-com.pages.dev/_profile/\u003e - 112s- markata==0.9.0.dev5 after fixing md_video issue\n* \u003chttps://e6b8f64a.waylonwalker-com.pages.dev/_profile/\u003e - 16s - markata==0.9.0.dev5 1 post not skipped, this one\n* \u003chttps://10b778b4.waylonwalker-com.pages.dev/_profile/\u003e - 5.65s - markata==0.9.0.dev5 fully hot cache build with no changes\n",
      "summary": "Here are a list of some cold builds from my site. I've ran this site for a long time and would like to have some references to go back to, and wish I had...",
      "date_published": "2025-01-27T20:28:43Z",
      "date_modified": "2025-01-27T20:28:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "meta"
      ]
    },
    {
      "id": "https://waylonwalker.com/pesos/",
      "url": "https://waylonwalker.com/pesos/",
      "title": "pesos",
      "content_html": "\u003cp\u003ePesos is the act of Publish Elsewhere Syncicate to Own Site.  It is an indieweb\nconcept that I recently started applying to my own site.\u003c/p\u003e\n\u003cp\u003ehere does it skip again\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSee \u0026lt;https://indieweb.org/PESOS\u0026gt; for more information, they have a ton of\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003einformation about the indieweb\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eIn short it is the concept of pulling data from other sites that you use and\nrepublishing it to your own site.  This gives a single source of information\nfor you, and protection against sites and apis changing or rug pulling.  Other\npeople might have a lot more use cases for this, but I already begin a lot of\nmy data right on my site.\u003c/p\u003e\n\u003ch2 id=\"github-stars\"\u003eGitHub stars \u003ca href=\"#github-stars\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI am using the github api to get a list of my stars and then create posts in\nthe github repo for my blog.  This allows me to keep track of things I star on\nGitHub in my own way, and share them out with my rss feeds.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2380f814-a8cb-45d1-bb5b-538d171933e3.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2380f814-a8cb-45d1-bb5b-538d171933e3.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nPesos is the act of Publish Elsewhere Syncicate to Own Site.  It is an indieweb\nconcept that I recently started applying to my own site.\n\nhere does it skip again\n\n!!! note\n    See \u003chttps://indieweb.org/PESOS\u003e for more information, they have a ton of\n    information about the indieweb\n\nIn short it is the concept of pulling data from other sites that you use and\nrepublishing it to your own site.  This gives a single source of information\nfor you, and protection against sites and apis changing or rug pulling.  Other\n  people might have a lot more use cases for this, but I already begin a lot of\n  my data right on my site.\n\n## GitHub stars\n\nI am using the github api to get a list of my stars and then create posts in\nthe github repo for my blog.  This allows me to keep track of things I star on\nGitHub in my own way, and share them out with my rss feeds.\n\n![image](https://dropper.waylonwalker.com/api/file/2380f814-a8cb-45d1-bb5b-538d171933e3.webp)\n",
      "summary": "Pesos is the act of Publish Elsewhere Syncicate to Own Site. It is an indieweb concept that I recently started applying to my own site.",
      "date_published": "2025-01-25T17:20:55Z",
      "date_modified": "2025-01-25T17:20:55Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "indieweb"
      ]
    },
    {
      "id": "https://waylonwalker.com/veekaybee-gitfeed/",
      "url": "https://waylonwalker.com/veekaybee-gitfeed/",
      "title": "⭐ veekaybee gitfeed",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/veekaybee\" 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\"\u003eveekaybee\u003c/a\u003e and their project \u003ca href=\"https://github.com/veekaybee/gitfeed\" 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\"\u003egitfeed\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eFeed of posts from Bluesky that have a GitHub link\u003c/p\u003e\n",
      "content_text": "\nCheck out [veekaybee](https://github.com/veekaybee) and their project [gitfeed](https://github.com/veekaybee/gitfeed).\n\nFeed of posts from Bluesky that have a GitHub link\n",
      "summary": "Check out veekaybee and their project gitfeed.",
      "date_published": "2025-01-24T19:34:10Z",
      "date_modified": "2025-01-24T19:34:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ggml-org-llama-vim/",
      "url": "https://waylonwalker.com/ggml-org-llama-vim/",
      "title": "⭐ ggml-org llama.vim",
      "content_html": "\u003cp\u003eI came across \u003ca href=\"https://github.com/ggml-org/llama.vim\" 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\"\u003ellama.vim\u003c/a\u003e from \u003ca href=\"https://github.com/ggml-org\" 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\"\u003eggml-org\u003c/a\u003e, and it’s packed with great features and ideas.\u003c/p\u003e\n\u003cp\u003eVim plugin for LLM-assisted code/text completion\u003c/p\u003e\n",
      "content_text": "\nI came across [llama.vim](https://github.com/ggml-org/llama.vim) from [ggml-org](https://github.com/ggml-org), and it's packed with great features and ideas.\n\nVim plugin for LLM-assisted code/text completion\n",
      "summary": "I came across llama.vim from ggml-org, and it's packed with great features and ideas.",
      "date_published": "2025-01-24T01:01:28Z",
      "date_modified": "2025-01-24T01:01:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/hover-z-index-and-positioning/",
      "url": "https://waylonwalker.com/hover-z-index-and-positioning/",
      "title": "hover z-index and positioning",
      "content_html": "\u003cp\u003eI broke my \u003ca href=\"/sick-wikilink-hover/\" class=\"wikilink\" data-title=\"sick wikilink hover\" data-description=\"Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...\" data-date=\"2024-05-30\" data-preview=\"Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...\"\u003esick wikilink hover\u003c/a\u003e recently in a refactor, today I did some\ndiving in to figure out what happened.\u003c/p\u003e\n\u003ch2 id=\"before\"\u003eBefore \u003ca href=\"#before\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs you can see in the screenshot below, the link is in a list of links, and\nwhen the hover image pops up it sits behind all of the other text.  The z-index\nof the list-item is supposed to be raised above the others on hover.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b3158b49-5c0f-4e52-b3e3-47ba67f5c801.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/b3158b49-5c0f-4e52-b3e3-47ba67f5c801.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eManually setting z-index to 20 in the inspector I noticed this message from\ndevtools, \u003cem\u003e“The position: static property prevents z-index from having an\neffect. Try setting position to something other than static.”\u003c/em\u003e, looking back at\nsome of my refactoring I had relative in an old template and it was lost.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/1c7fb24c-b77d-4962-adfc-8e2eb5e6145c.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/1c7fb24c-b77d-4962-adfc-8e2eb5e6145c.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"after\"\u003eAfter \u003ca href=\"#after\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAfter properly setting position to relative on the list-item, the hover image\nis raised above the others.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ef207afb-a3a5-463a-a615-fdfe8a4256c5.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ef207afb-a3a5-463a-a615-fdfe8a4256c5.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nI broke my \u003ca href=\"/sick-wikilink-hover/\" class=\"wikilink\" data-title=\"sick wikilink hover\" data-description=\"Today I set up some sick wikilink hover effects using tailwind see a-case-for-tailwindcss. When you hover over them they show an image preview of the link...\" data-date=\"2024-05-30\"\u003esick wikilink hover\u003c/a\u003e recently in a refactor, today I did some\ndiving in to figure out what happened.\n\n## Before\n\nAs you can see in the screenshot below, the link is in a list of links, and\nwhen the hover image pops up it sits behind all of the other text.  The z-index\nof the list-item is supposed to be raised above the others on hover.\n\n![image](https://dropper.waylonwalker.com/api/file/b3158b49-5c0f-4e52-b3e3-47ba67f5c801.webp)\n\nManually setting z-index to 20 in the inspector I noticed this message from\ndevtools, _\"The position: static property prevents z-index from having an\neffect. Try setting position to something other than static.\"_, looking back at\nsome of my refactoring I had relative in an old template and it was lost.\n\n![image](https://dropper.waylonwalker.com/api/file/1c7fb24c-b77d-4962-adfc-8e2eb5e6145c.webp)\n\n## After\n\nAfter properly setting position to relative on the list-item, the hover image\nis raised above the others.\n\n![image](https://dropper.waylonwalker.com/api/file/ef207afb-a3a5-463a-a615-fdfe8a4256c5.webp)\n",
      "summary": "I broke my sick-wikilink-hover recently in a refactor, today I did some diving in to figure out what happened.",
      "date_published": "2025-01-23T15:54:07Z",
      "date_modified": "2025-01-23T15:54:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "tailwindcss",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-540/",
      "url": "https://waylonwalker.com/thought-540/",
      "title": "💭 Top Python libraries of 2024 | Tryolabs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tryolabs.com/blog/top-python-libraries-2024\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://tryolabs.com/assets/blog/top-python-libraries-2024/collection-python-e190b6eef0.png\" alt=\"Top Python libraries of 2024 — Dive into our 10th annual Python Libraries roundup for 2024, now featuring separate curated lists for General Use and AI / ML / Data tools. Discover this year\u0026#39;s most innovative additions to the ecosystem!\" loading=\"lazy\"/ data-glightbox=\"description: Top Python libraries of 2024 — Dive into our 10th annual Python Libraries roundup for 2024, now featuring separate curated lists for General Use and AI / ML / Data tools. Discover this year\u0026#39;s most innovative additions to the ecosystem!\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTop Python libraries of 2024\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDive into our 10th annual Python Libraries roundup for 2024, now featuring separate curated lists for General Use and AI / ML / Data tools. Discover this year\u0026#39;s most innovative additions to the eco...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTryolabs · tryolabs.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eReally good listicle of new modern top python libraries from 2024.  Very well done article with images, links, and an actually quality listicle with many things I’ve never even heard of.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://tryolabs.com/blog/top-python-libraries-2024\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://tryolabs.com/assets/blog/top-python-libraries-2024/collection-python-e190b6eef0.png\" alt=\"Top Python libraries of 2024 — Dive into our 10th annual Python Libraries roundup for 2024, now featuring separate curated lists for General Use and AI / ML / Data tools. Discover this year\u0026#39;s most innovative additions to the ecosystem!\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTop Python libraries of 2024\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eDive into our 10th annual Python Libraries roundup for 2024, now featuring separate curated lists for General Use and AI / ML / Data tools. Discover this year\u0026#39;s most innovative additions to the eco...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eTryolabs \u0026middot; tryolabs.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n Really good listicle of new modern top python libraries from 2024.  Very well done article with images, links, and an actually quality listicle with many things I've never even heard of.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://tryolabs.com/blog/top-python-libraries-2024",
      "date_published": "2025-01-23T00:31:18Z",
      "date_modified": "2025-01-23T00:31:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-539/",
      "url": "https://waylonwalker.com/thought-539/",
      "title": "💭 Choosing color palettes — seaborn 0.13.2 documentation",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://seaborn.pydata.org/tutorial/color_palettes.html\" class=\"glightbox-link\" aria-label=\"https://seaborn.pydata.org/tutorial/color_palettes.html\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://seaborn.pydata.org/tutorial/color_palettes.html\" alt=\"https://seaborn.pydata.org/tutorial/color_palettes.html\"/ data-glightbox=\"description: https://seaborn.pydata.org/tutorial/color_palettes.html\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eGood overview of seaborn color palettes.  They have all sorts of different types, some designed to purposfully give each color the same weight for catecorization.  Some designd to give linear differences in value, some have a parabolic feel with a diverging nature.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://seaborn.pydata.org/tutorial/color_palettes.html](/static/https://seaborn.pydata.org/tutorial/color_palettes.html)\n\nGood overview of seaborn color palettes.  They have all sorts of different types, some designed to purposfully give each color the same weight for catecorization.  Some designd to give linear differences in value, some have a parabolic feel with a diverging nature.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://seaborn.pydata.org/tutorial/color_palettes.html",
      "date_published": "2025-01-22T13:47:54Z",
      "date_modified": "2025-01-22T13:47:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "data-viz",
        "python",
        "seaborn",
        "thought"
      ]
    },
    {
      "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 layoffs were rolling through\nthe company I worked for at the time.  Starting a personal blog and a pile of\nside projects felt like one of the best things I could do for my resume, so off\nI went.  This site is built on \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, more about that in the\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\" 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\" aria-label=\"screenshot-2025-01-31T21-23-13-643Z.png\"\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\u003cp\u003eThe old version of this page embedded static SVGs from my Python Markata build.\nThose files are gone in the \u003ccode\u003emarkata-go\u003c/code\u003e site, so this page now renders the\nyearly posting history directly from the current content set.\u003c/p\u003e\n\u003ch2 id=\"post-contributions-all-time-monthly\"\u003ePost Contributions All Time Monthly \u003ca href=\"#post-contributions-all-time-monthly\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cdiv class=\"contribution-graph-container contribution-graph-error\"\u003e\n  \u003cp\u003eContribution Graph Error: Invalid JSON configuration\u003c/p\u003e\n  \u003cpre\u003einvalid character \u0026#39;%\u0026#39; looking for beginning of object key string\u003c/pre\u003e\n\u003c/div\u003e\n\u003ch2 id=\"post-contributions-in-2026\"\u003ePost Contributions in 2026 \u003ca href=\"#post-contributions-in-2026\" 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-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-2\"\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-3\"\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 for me and I started slowing down.  About mid year I\nfelt like I had a lot that I wanted to get out, but felt like I couldn’t,\nbecause I did not have the time to blog, so I added \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e on 7/22/2023\nwith 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-4\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNotice the huge uptick that started immediately as shots was released\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-5\"\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 to make a blog\npost.  A blog post did not need to be a super long essay, but could be the size\nof a tweet.\u003c/p\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-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-7\"\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 very busy leading a migration to\nthe cloud, containerized data pipeline orchestration, and setting up new\nprojects and templates using \u003ca href=\"/kedro/\" class=\"wikilink\" data-title=\"Kedro\" data-description=\"My Notes about using kedro\" data-date=\"2019-11-02\" data-preview=\"My Notes about using kedro\"\u003eKedro\u003c/a\u003e\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-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 \u003ca href=\"/vim-notes/\" class=\"wikilink\" data-title=\"Vim Notes\" data-description=\"norcalli/neovim-plugin\" data-date=\"2018-02-01\" data-preview=\"norcalli/neovim-plugin\"\u003eVim Notes\u003c/a\u003e and rounding out with \u003ca href=\"/bash/\" class=\"wikilink\" data-title=\"📝 Bash Notes\" data-description=\"Waylon Walker\u0026#39;s Bash Notes\" data-date=\"2019-09-08\" data-preview=\"Waylon Walker\u0026#39;s Bash Notes\"\u003e📝 Bash Notes\u003c/a\u003e.  I had been\nwatching luke smith for a awhile, and started managing my first linux server at\nwork.  I was stuck with windows at the time, but wsl was a new thing that let\nme run linux in the terminal.\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-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 5 years into my\ncareer, and layoffs were happening hard at the time.  I remember fist landing 5\nyears before and being told in the companies long history they have never laid\noff engineers, it was a very safe place to be.  This was a wake up call that it\nmight all turn around and I would take nothing with me.  Blogging became my way\nto document things I was learning, it was making be better at communicating,\nand giving me a reason to take a deeper dive into interesting topics.\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\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 that I created my github account, and really got serious\nabout career switching from Mechanical Engineering to Software Engineering.\nAll of my 2016 posts are back-dated github stars.\u003c/p\u003e\n\u003cdiv class=\"contribution-graph-container\"\u003e\n  \u003cdiv id=\"contribution-graph-11\"\u003e\u003c/div\u003e\n\u003c/div\u003e\n\n\u003cstyle\u003e\n.contribution-graph-container {\n  width: 100%;\n  overflow: hidden;\n  margin: 1rem 0;\n  display: flex;\n  justify-content: center;\n}\n.contribution-graph-container \u003e div {\n  flex-shrink: 0;\n  transform-origin: top center;\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=\"https://cdn.jsdelivr.net/npm/cal-heatmap@4.2.4/dist/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=\"https://cdn.jsdelivr.net/npm/cal-heatmap@4.2.4/dist/cal-heatmap.min.js\"\u003e\u003c/script\u003e\n\u003cscript src=\"https://cdn.jsdelivr.net/npm/cal-heatmap@4.2.4/dist/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 = [{\"date\":\"2026-01-01\",\"value\":5},{\"date\":\"2026-01-02\",\"value\":3},{\"date\":\"2026-01-03\",\"value\":4},{\"date\":\"2026-01-04\",\"value\":5},{\"date\":\"2026-01-05\",\"value\":3},{\"date\":\"2026-01-06\",\"value\":1},{\"date\":\"2026-01-07\",\"value\":1},{\"date\":\"2026-01-08\",\"value\":7},{\"date\":\"2026-01-09\",\"value\":3},{\"date\":\"2026-01-10\",\"value\":2},{\"date\":\"2026-01-11\",\"value\":6},{\"date\":\"2026-01-12\",\"value\":4},{\"date\":\"2026-01-13\",\"value\":6},{\"date\":\"2026-01-14\",\"value\":6},{\"date\":\"2026-01-15\",\"value\":6},{\"date\":\"2026-01-17\",\"value\":1},{\"date\":\"2026-01-18\",\"value\":1},{\"date\":\"2026-01-19\",\"value\":3},{\"date\":\"2026-01-21\",\"value\":3},{\"date\":\"2026-01-22\",\"value\":2},{\"date\":\"2026-01-23\",\"value\":2},{\"date\":\"2026-01-24\",\"value\":2},{\"date\":\"2026-01-25\",\"value\":1},{\"date\":\"2026-01-26\",\"value\":5},{\"date\":\"2026-01-27\",\"value\":1},{\"date\":\"2026-01-28\",\"value\":1},{\"date\":\"2026-01-29\",\"value\":1},{\"date\":\"2026-01-30\",\"value\":1},{\"date\":\"2026-02-02\",\"value\":2},{\"date\":\"2026-02-03\",\"value\":6},{\"date\":\"2026-02-04\",\"value\":1},{\"date\":\"2026-02-05\",\"value\":2},{\"date\":\"2026-02-06\",\"value\":3},{\"date\":\"2026-02-07\",\"value\":3},{\"date\":\"2026-02-09\",\"value\":2},{\"date\":\"2026-02-10\",\"value\":2},{\"date\":\"2026-02-11\",\"value\":6},{\"date\":\"2026-02-12\",\"value\":1},{\"date\":\"2026-02-13\",\"value\":1},{\"date\":\"2026-02-14\",\"value\":3},{\"date\":\"2026-02-16\",\"value\":4},{\"date\":\"2026-02-17\",\"value\":3},{\"date\":\"2026-02-18\",\"value\":1},{\"date\":\"2026-02-19\",\"value\":4},{\"date\":\"2026-02-20\",\"value\":1},{\"date\":\"2026-02-21\",\"value\":1},{\"date\":\"2026-02-22\",\"value\":1},{\"date\":\"2026-02-23\",\"value\":6},{\"date\":\"2026-02-24\",\"value\":4},{\"date\":\"2026-02-25\",\"value\":5},{\"date\":\"2026-02-26\",\"value\":2},{\"date\":\"2026-02-27\",\"value\":3},{\"date\":\"2026-02-28\",\"value\":3},{\"date\":\"2026-03-01\",\"value\":1},{\"date\":\"2026-03-02\",\"value\":4},{\"date\":\"2026-03-03\",\"value\":2},{\"date\":\"2026-03-04\",\"value\":5},{\"date\":\"2026-03-05\",\"value\":2},{\"date\":\"2026-03-06\",\"value\":3},{\"date\":\"2026-03-07\",\"value\":2},{\"date\":\"2026-03-09\",\"value\":4},{\"date\":\"2026-03-10\",\"value\":1},{\"date\":\"2026-03-12\",\"value\":1},{\"date\":\"2026-03-13\",\"value\":1},{\"date\":\"2026-03-15\",\"value\":3},{\"date\":\"2026-03-16\",\"value\":3},{\"date\":\"2026-03-17\",\"value\":12},{\"date\":\"2026-03-18\",\"value\":3},{\"date\":\"2026-03-19\",\"value\":4},{\"date\":\"2026-03-20\",\"value\":1},{\"date\":\"2026-03-21\",\"value\":1},{\"date\":\"2026-03-22\",\"value\":2},{\"date\":\"2026-03-23\",\"value\":5},{\"date\":\"2026-03-24\",\"value\":1},{\"date\":\"2026-03-25\",\"value\":3},{\"date\":\"2026-03-26\",\"value\":4},{\"date\":\"2026-03-27\",\"value\":2},{\"date\":\"2026-03-28\",\"value\":2},{\"date\":\"2026-03-29\",\"value\":4},{\"date\":\"2026-03-30\",\"value\":2},{\"date\":\"2026-03-31\",\"value\":9},{\"date\":\"2026-04-01\",\"value\":2},{\"date\":\"2026-04-02\",\"value\":7},{\"date\":\"2026-04-03\",\"value\":4},{\"date\":\"2026-04-04\",\"value\":1},{\"date\":\"2026-04-05\",\"value\":2},{\"date\":\"2026-04-08\",\"value\":4},{\"date\":\"2026-04-09\",\"value\":2},{\"date\":\"2026-04-12\",\"value\":2},{\"date\":\"2026-04-13\",\"value\":4},{\"date\":\"2026-04-14\",\"value\":4},{\"date\":\"2026-04-15\",\"value\":4},{\"date\":\"2026-04-16\",\"value\":1},{\"date\":\"2026-04-17\",\"value\":1},{\"date\":\"2026-04-18\",\"value\":2},{\"date\":\"2026-04-19\",\"value\":1},{\"date\":\"2026-04-21\",\"value\":1},{\"date\":\"2026-04-26\",\"value\":2},{\"date\":\"2026-04-27\",\"value\":1},{\"date\":\"2026-04-28\",\"value\":1},{\"date\":\"2026-04-29\",\"value\":1},{\"date\":\"2026-05-01\",\"value\":1},{\"date\":\"2026-05-02\",\"value\":3},{\"date\":\"2026-05-05\",\"value\":3},{\"date\":\"2026-05-06\",\"value\":4},{\"date\":\"2026-05-07\",\"value\":1},{\"date\":\"2026-05-08\",\"value\":3},{\"date\":\"2026-05-09\",\"value\":2},{\"date\":\"2026-05-10\",\"value\":2},{\"date\":\"2026-05-11\",\"value\":1},{\"date\":\"2026-05-12\",\"value\":1},{\"date\":\"2026-05-13\",\"value\":2}];\n    const options = {date: { start: new Date('2026-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 12;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-2';\n    const data = [{\"date\":\"2025-01-02\",\"value\":6},{\"date\":\"2025-01-03\",\"value\":6},{\"date\":\"2025-01-04\",\"value\":5},{\"date\":\"2025-01-06\",\"value\":3},{\"date\":\"2025-01-07\",\"value\":1},{\"date\":\"2025-01-08\",\"value\":3},{\"date\":\"2025-01-09\",\"value\":12},{\"date\":\"2025-01-10\",\"value\":3},{\"date\":\"2025-01-11\",\"value\":3},{\"date\":\"2025-01-12\",\"value\":3},{\"date\":\"2025-01-13\",\"value\":5},{\"date\":\"2025-01-16\",\"value\":1},{\"date\":\"2025-01-17\",\"value\":2},{\"date\":\"2025-01-18\",\"value\":2},{\"date\":\"2025-01-19\",\"value\":5},{\"date\":\"2025-01-20\",\"value\":3},{\"date\":\"2025-01-21\",\"value\":11},{\"date\":\"2025-01-22\",\"value\":2},{\"date\":\"2025-01-23\",\"value\":2},{\"date\":\"2025-01-24\",\"value\":2},{\"date\":\"2025-01-25\",\"value\":1},{\"date\":\"2025-01-27\",\"value\":1},{\"date\":\"2025-01-28\",\"value\":2},{\"date\":\"2025-01-29\",\"value\":2},{\"date\":\"2025-01-30\",\"value\":2},{\"date\":\"2025-01-31\",\"value\":7},{\"date\":\"2025-02-01\",\"value\":4},{\"date\":\"2025-02-02\",\"value\":5},{\"date\":\"2025-02-03\",\"value\":2},{\"date\":\"2025-02-05\",\"value\":2},{\"date\":\"2025-02-07\",\"value\":3},{\"date\":\"2025-02-08\",\"value\":2},{\"date\":\"2025-02-09\",\"value\":3},{\"date\":\"2025-02-10\",\"value\":2},{\"date\":\"2025-02-11\",\"value\":2},{\"date\":\"2025-02-12\",\"value\":6},{\"date\":\"2025-02-13\",\"value\":6},{\"date\":\"2025-02-14\",\"value\":7},{\"date\":\"2025-02-15\",\"value\":6},{\"date\":\"2025-02-16\",\"value\":1},{\"date\":\"2025-02-17\",\"value\":11},{\"date\":\"2025-02-18\",\"value\":3},{\"date\":\"2025-02-20\",\"value\":1},{\"date\":\"2025-02-21\",\"value\":3},{\"date\":\"2025-02-22\",\"value\":1},{\"date\":\"2025-02-23\",\"value\":2},{\"date\":\"2025-02-25\",\"value\":1},{\"date\":\"2025-02-26\",\"value\":1},{\"date\":\"2025-02-28\",\"value\":2},{\"date\":\"2025-03-01\",\"value\":3},{\"date\":\"2025-03-02\",\"value\":1},{\"date\":\"2025-03-03\",\"value\":1},{\"date\":\"2025-03-04\",\"value\":1},{\"date\":\"2025-03-06\",\"value\":2},{\"date\":\"2025-03-08\",\"value\":1},{\"date\":\"2025-03-11\",\"value\":1},{\"date\":\"2025-03-12\",\"value\":1},{\"date\":\"2025-03-13\",\"value\":1},{\"date\":\"2025-03-14\",\"value\":2},{\"date\":\"2025-03-15\",\"value\":2},{\"date\":\"2025-03-17\",\"value\":2},{\"date\":\"2025-03-20\",\"value\":2},{\"date\":\"2025-03-24\",\"value\":1},{\"date\":\"2025-03-25\",\"value\":1},{\"date\":\"2025-03-26\",\"value\":1},{\"date\":\"2025-03-29\",\"value\":1},{\"date\":\"2025-04-04\",\"value\":1},{\"date\":\"2025-04-07\",\"value\":2},{\"date\":\"2025-04-09\",\"value\":3},{\"date\":\"2025-04-12\",\"value\":2},{\"date\":\"2025-04-13\",\"value\":1},{\"date\":\"2025-04-15\",\"value\":3},{\"date\":\"2025-04-17\",\"value\":1},{\"date\":\"2025-04-19\",\"value\":1},{\"date\":\"2025-04-20\",\"value\":1},{\"date\":\"2025-04-22\",\"value\":2},{\"date\":\"2025-04-24\",\"value\":1},{\"date\":\"2025-04-25\",\"value\":1},{\"date\":\"2025-04-27\",\"value\":1},{\"date\":\"2025-04-28\",\"value\":6},{\"date\":\"2025-04-30\",\"value\":1},{\"date\":\"2025-05-01\",\"value\":9},{\"date\":\"2025-05-02\",\"value\":2},{\"date\":\"2025-05-04\",\"value\":4},{\"date\":\"2025-05-05\",\"value\":3},{\"date\":\"2025-05-06\",\"value\":2},{\"date\":\"2025-05-07\",\"value\":4},{\"date\":\"2025-05-09\",\"value\":4},{\"date\":\"2025-05-10\",\"value\":4},{\"date\":\"2025-05-11\",\"value\":3},{\"date\":\"2025-05-12\",\"value\":1},{\"date\":\"2025-05-16\",\"value\":1},{\"date\":\"2025-05-18\",\"value\":1},{\"date\":\"2025-05-19\",\"value\":1},{\"date\":\"2025-05-21\",\"value\":1},{\"date\":\"2025-05-22\",\"value\":3},{\"date\":\"2025-05-23\",\"value\":1},{\"date\":\"2025-05-24\",\"value\":4},{\"date\":\"2025-05-25\",\"value\":1},{\"date\":\"2025-05-26\",\"value\":1},{\"date\":\"2025-05-27\",\"value\":5},{\"date\":\"2025-05-28\",\"value\":5},{\"date\":\"2025-05-29\",\"value\":3},{\"date\":\"2025-05-31\",\"value\":10},{\"date\":\"2025-06-01\",\"value\":1},{\"date\":\"2025-06-02\",\"value\":2},{\"date\":\"2025-06-03\",\"value\":3},{\"date\":\"2025-06-04\",\"value\":2},{\"date\":\"2025-06-05\",\"value\":3},{\"date\":\"2025-06-06\",\"value\":8},{\"date\":\"2025-06-07\",\"value\":7},{\"date\":\"2025-06-08\",\"value\":2},{\"date\":\"2025-06-09\",\"value\":1},{\"date\":\"2025-06-10\",\"value\":4},{\"date\":\"2025-06-11\",\"value\":2},{\"date\":\"2025-06-13\",\"value\":1},{\"date\":\"2025-06-14\",\"value\":2},{\"date\":\"2025-06-15\",\"value\":1},{\"date\":\"2025-06-16\",\"value\":1},{\"date\":\"2025-06-17\",\"value\":2},{\"date\":\"2025-06-18\",\"value\":2},{\"date\":\"2025-06-19\",\"value\":2},{\"date\":\"2025-06-21\",\"value\":1},{\"date\":\"2025-06-22\",\"value\":1},{\"date\":\"2025-06-23\",\"value\":4},{\"date\":\"2025-06-24\",\"value\":3},{\"date\":\"2025-06-25\",\"value\":1},{\"date\":\"2025-06-26\",\"value\":2},{\"date\":\"2025-06-27\",\"value\":2},{\"date\":\"2025-06-29\",\"value\":3},{\"date\":\"2025-06-30\",\"value\":2},{\"date\":\"2025-07-01\",\"value\":2},{\"date\":\"2025-07-02\",\"value\":2},{\"date\":\"2025-07-04\",\"value\":3},{\"date\":\"2025-07-05\",\"value\":2},{\"date\":\"2025-07-06\",\"value\":7},{\"date\":\"2025-07-07\",\"value\":2},{\"date\":\"2025-07-08\",\"value\":3},{\"date\":\"2025-07-09\",\"value\":3},{\"date\":\"2025-07-10\",\"value\":1},{\"date\":\"2025-07-11\",\"value\":1},{\"date\":\"2025-07-12\",\"value\":2},{\"date\":\"2025-07-15\",\"value\":2},{\"date\":\"2025-07-16\",\"value\":2},{\"date\":\"2025-07-17\",\"value\":3},{\"date\":\"2025-07-18\",\"value\":4},{\"date\":\"2025-07-19\",\"value\":1},{\"date\":\"2025-07-21\",\"value\":2},{\"date\":\"2025-07-22\",\"value\":2},{\"date\":\"2025-07-23\",\"value\":1},{\"date\":\"2025-07-24\",\"value\":1},{\"date\":\"2025-07-25\",\"value\":4},{\"date\":\"2025-07-26\",\"value\":2},{\"date\":\"2025-07-27\",\"value\":2},{\"date\":\"2025-07-28\",\"value\":4},{\"date\":\"2025-07-29\",\"value\":6},{\"date\":\"2025-07-30\",\"value\":5},{\"date\":\"2025-07-31\",\"value\":2},{\"date\":\"2025-08-01\",\"value\":2},{\"date\":\"2025-08-02\",\"value\":7},{\"date\":\"2025-08-03\",\"value\":2},{\"date\":\"2025-08-04\",\"value\":4},{\"date\":\"2025-08-05\",\"value\":6},{\"date\":\"2025-08-06\",\"value\":4},{\"date\":\"2025-08-07\",\"value\":3},{\"date\":\"2025-08-08\",\"value\":3},{\"date\":\"2025-08-09\",\"value\":3},{\"date\":\"2025-08-10\",\"value\":4},{\"date\":\"2025-08-11\",\"value\":2},{\"date\":\"2025-08-12\",\"value\":4},{\"date\":\"2025-08-13\",\"value\":1},{\"date\":\"2025-08-14\",\"value\":3},{\"date\":\"2025-08-15\",\"value\":2},{\"date\":\"2025-08-16\",\"value\":2},{\"date\":\"2025-08-17\",\"value\":4},{\"date\":\"2025-08-18\",\"value\":4},{\"date\":\"2025-08-21\",\"value\":5},{\"date\":\"2025-08-22\",\"value\":1},{\"date\":\"2025-08-23\",\"value\":11},{\"date\":\"2025-08-24\",\"value\":1},{\"date\":\"2025-08-25\",\"value\":7},{\"date\":\"2025-08-26\",\"value\":5},{\"date\":\"2025-08-27\",\"value\":5},{\"date\":\"2025-08-28\",\"value\":2},{\"date\":\"2025-08-29\",\"value\":6},{\"date\":\"2025-08-30\",\"value\":7},{\"date\":\"2025-08-31\",\"value\":7},{\"date\":\"2025-09-02\",\"value\":5},{\"date\":\"2025-09-03\",\"value\":2},{\"date\":\"2025-09-04\",\"value\":3},{\"date\":\"2025-09-05\",\"value\":3},{\"date\":\"2025-09-07\",\"value\":1},{\"date\":\"2025-09-08\",\"value\":1},{\"date\":\"2025-09-10\",\"value\":2},{\"date\":\"2025-09-11\",\"value\":1},{\"date\":\"2025-09-13\",\"value\":1},{\"date\":\"2025-09-16\",\"value\":8},{\"date\":\"2025-09-17\",\"value\":3},{\"date\":\"2025-09-18\",\"value\":2},{\"date\":\"2025-09-19\",\"value\":4},{\"date\":\"2025-09-20\",\"value\":6},{\"date\":\"2025-09-21\",\"value\":5},{\"date\":\"2025-09-23\",\"value\":3},{\"date\":\"2025-09-25\",\"value\":1},{\"date\":\"2025-09-26\",\"value\":3},{\"date\":\"2025-09-27\",\"value\":7},{\"date\":\"2025-09-28\",\"value\":1},{\"date\":\"2025-09-29\",\"value\":4},{\"date\":\"2025-10-01\",\"value\":1},{\"date\":\"2025-10-02\",\"value\":1},{\"date\":\"2025-10-03\",\"value\":5},{\"date\":\"2025-10-05\",\"value\":1},{\"date\":\"2025-10-08\",\"value\":1},{\"date\":\"2025-10-09\",\"value\":1},{\"date\":\"2025-10-10\",\"value\":2},{\"date\":\"2025-10-11\",\"value\":1},{\"date\":\"2025-10-12\",\"value\":3},{\"date\":\"2025-10-15\",\"value\":1},{\"date\":\"2025-10-16\",\"value\":1},{\"date\":\"2025-10-18\",\"value\":2},{\"date\":\"2025-10-19\",\"value\":1},{\"date\":\"2025-10-20\",\"value\":1},{\"date\":\"2025-10-21\",\"value\":1},{\"date\":\"2025-10-22\",\"value\":3},{\"date\":\"2025-10-23\",\"value\":2},{\"date\":\"2025-10-24\",\"value\":5},{\"date\":\"2025-10-26\",\"value\":1},{\"date\":\"2025-10-27\",\"value\":1},{\"date\":\"2025-10-28\",\"value\":2},{\"date\":\"2025-10-29\",\"value\":3},{\"date\":\"2025-10-30\",\"value\":1},{\"date\":\"2025-10-31\",\"value\":1},{\"date\":\"2025-11-01\",\"value\":3},{\"date\":\"2025-11-02\",\"value\":6},{\"date\":\"2025-11-04\",\"value\":3},{\"date\":\"2025-11-05\",\"value\":2},{\"date\":\"2025-11-06\",\"value\":1},{\"date\":\"2025-11-09\",\"value\":2},{\"date\":\"2025-11-11\",\"value\":4},{\"date\":\"2025-11-12\",\"value\":3},{\"date\":\"2025-11-15\",\"value\":2},{\"date\":\"2025-11-17\",\"value\":1},{\"date\":\"2025-11-18\",\"value\":1},{\"date\":\"2025-11-19\",\"value\":2},{\"date\":\"2025-11-20\",\"value\":1},{\"date\":\"2025-11-21\",\"value\":2},{\"date\":\"2025-11-23\",\"value\":4},{\"date\":\"2025-11-24\",\"value\":1},{\"date\":\"2025-11-26\",\"value\":1},{\"date\":\"2025-11-27\",\"value\":1},{\"date\":\"2025-11-28\",\"value\":4},{\"date\":\"2025-11-29\",\"value\":1},{\"date\":\"2025-11-30\",\"value\":1},{\"date\":\"2025-12-01\",\"value\":7},{\"date\":\"2025-12-02\",\"value\":2},{\"date\":\"2025-12-03\",\"value\":2},{\"date\":\"2025-12-04\",\"value\":3},{\"date\":\"2025-12-05\",\"value\":3},{\"date\":\"2025-12-06\",\"value\":15},{\"date\":\"2025-12-07\",\"value\":8},{\"date\":\"2025-12-08\",\"value\":6},{\"date\":\"2025-12-09\",\"value\":9},{\"date\":\"2025-12-10\",\"value\":4},{\"date\":\"2025-12-11\",\"value\":1},{\"date\":\"2025-12-12\",\"value\":3},{\"date\":\"2025-12-13\",\"value\":2},{\"date\":\"2025-12-14\",\"value\":4},{\"date\":\"2025-12-15\",\"value\":1},{\"date\":\"2025-12-16\",\"value\":3},{\"date\":\"2025-12-17\",\"value\":3},{\"date\":\"2025-12-18\",\"value\":2},{\"date\":\"2025-12-19\",\"value\":3},{\"date\":\"2025-12-20\",\"value\":3},{\"date\":\"2025-12-21\",\"value\":6},{\"date\":\"2025-12-22\",\"value\":7},{\"date\":\"2025-12-23\",\"value\":2},{\"date\":\"2025-12-24\",\"value\":2},{\"date\":\"2025-12-25\",\"value\":1},{\"date\":\"2025-12-28\",\"value\":1},{\"date\":\"2025-12-29\",\"value\":3},{\"date\":\"2025-12-31\",\"value\":1}];\n    const options = {date: { start: new Date('2025-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 15;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-3';\n    const data = [{\"date\":\"2024-01-12\",\"value\":1},{\"date\":\"2024-01-14\",\"value\":1},{\"date\":\"2024-01-25\",\"value\":1},{\"date\":\"2024-01-26\",\"value\":4},{\"date\":\"2024-01-28\",\"value\":1},{\"date\":\"2024-01-30\",\"value\":3},{\"date\":\"2024-02-03\",\"value\":1},{\"date\":\"2024-02-09\",\"value\":1},{\"date\":\"2024-02-11\",\"value\":1},{\"date\":\"2024-02-16\",\"value\":1},{\"date\":\"2024-02-27\",\"value\":2},{\"date\":\"2024-03-01\",\"value\":3},{\"date\":\"2024-03-04\",\"value\":3},{\"date\":\"2024-03-06\",\"value\":3},{\"date\":\"2024-03-07\",\"value\":5},{\"date\":\"2024-03-09\",\"value\":2},{\"date\":\"2024-03-14\",\"value\":1},{\"date\":\"2024-03-15\",\"value\":4},{\"date\":\"2024-03-16\",\"value\":2},{\"date\":\"2024-03-18\",\"value\":1},{\"date\":\"2024-03-19\",\"value\":3},{\"date\":\"2024-03-20\",\"value\":2},{\"date\":\"2024-03-21\",\"value\":1},{\"date\":\"2024-03-24\",\"value\":1},{\"date\":\"2024-03-25\",\"value\":1},{\"date\":\"2024-03-26\",\"value\":3},{\"date\":\"2024-03-27\",\"value\":2},{\"date\":\"2024-03-28\",\"value\":1},{\"date\":\"2024-03-29\",\"value\":1},{\"date\":\"2024-03-30\",\"value\":1},{\"date\":\"2024-04-01\",\"value\":5},{\"date\":\"2024-04-02\",\"value\":1},{\"date\":\"2024-04-03\",\"value\":2},{\"date\":\"2024-04-04\",\"value\":1},{\"date\":\"2024-04-05\",\"value\":1},{\"date\":\"2024-04-06\",\"value\":1},{\"date\":\"2024-04-07\",\"value\":4},{\"date\":\"2024-04-08\",\"value\":3},{\"date\":\"2024-04-09\",\"value\":3},{\"date\":\"2024-04-10\",\"value\":2},{\"date\":\"2024-04-11\",\"value\":2},{\"date\":\"2024-04-12\",\"value\":1},{\"date\":\"2024-04-13\",\"value\":2},{\"date\":\"2024-04-14\",\"value\":1},{\"date\":\"2024-04-15\",\"value\":1},{\"date\":\"2024-04-16\",\"value\":3},{\"date\":\"2024-04-17\",\"value\":5},{\"date\":\"2024-04-18\",\"value\":3},{\"date\":\"2024-04-19\",\"value\":3},{\"date\":\"2024-04-20\",\"value\":5},{\"date\":\"2024-04-21\",\"value\":1},{\"date\":\"2024-04-22\",\"value\":1},{\"date\":\"2024-04-23\",\"value\":1},{\"date\":\"2024-04-24\",\"value\":1},{\"date\":\"2024-04-25\",\"value\":2},{\"date\":\"2024-04-30\",\"value\":7},{\"date\":\"2024-05-01\",\"value\":3},{\"date\":\"2024-05-02\",\"value\":3},{\"date\":\"2024-05-08\",\"value\":1},{\"date\":\"2024-05-09\",\"value\":1},{\"date\":\"2024-05-10\",\"value\":1},{\"date\":\"2024-05-11\",\"value\":1},{\"date\":\"2024-05-12\",\"value\":3},{\"date\":\"2024-05-14\",\"value\":3},{\"date\":\"2024-05-16\",\"value\":2},{\"date\":\"2024-05-21\",\"value\":2},{\"date\":\"2024-05-22\",\"value\":4},{\"date\":\"2024-05-25\",\"value\":2},{\"date\":\"2024-05-26\",\"value\":2},{\"date\":\"2024-05-30\",\"value\":8},{\"date\":\"2024-05-31\",\"value\":3},{\"date\":\"2024-06-01\",\"value\":4},{\"date\":\"2024-06-03\",\"value\":4},{\"date\":\"2024-06-04\",\"value\":2},{\"date\":\"2024-06-06\",\"value\":4},{\"date\":\"2024-06-07\",\"value\":3},{\"date\":\"2024-06-08\",\"value\":1},{\"date\":\"2024-06-09\",\"value\":3},{\"date\":\"2024-06-10\",\"value\":3},{\"date\":\"2024-06-11\",\"value\":1},{\"date\":\"2024-06-12\",\"value\":4},{\"date\":\"2024-06-14\",\"value\":1},{\"date\":\"2024-06-16\",\"value\":2},{\"date\":\"2024-06-18\",\"value\":1},{\"date\":\"2024-06-23\",\"value\":1},{\"date\":\"2024-06-24\",\"value\":5},{\"date\":\"2024-06-25\",\"value\":2},{\"date\":\"2024-06-26\",\"value\":3},{\"date\":\"2024-06-28\",\"value\":5},{\"date\":\"2024-06-30\",\"value\":1},{\"date\":\"2024-07-01\",\"value\":4},{\"date\":\"2024-07-02\",\"value\":5},{\"date\":\"2024-07-03\",\"value\":5},{\"date\":\"2024-07-04\",\"value\":3},{\"date\":\"2024-07-05\",\"value\":1},{\"date\":\"2024-07-06\",\"value\":7},{\"date\":\"2024-07-07\",\"value\":1},{\"date\":\"2024-07-09\",\"value\":2},{\"date\":\"2024-07-10\",\"value\":4},{\"date\":\"2024-07-11\",\"value\":5},{\"date\":\"2024-07-12\",\"value\":1},{\"date\":\"2024-07-13\",\"value\":2},{\"date\":\"2024-07-15\",\"value\":3},{\"date\":\"2024-07-17\",\"value\":2},{\"date\":\"2024-07-18\",\"value\":1},{\"date\":\"2024-07-19\",\"value\":1},{\"date\":\"2024-07-20\",\"value\":1},{\"date\":\"2024-07-21\",\"value\":1},{\"date\":\"2024-07-22\",\"value\":1},{\"date\":\"2024-07-23\",\"value\":1},{\"date\":\"2024-07-24\",\"value\":6},{\"date\":\"2024-07-25\",\"value\":4},{\"date\":\"2024-07-26\",\"value\":2},{\"date\":\"2024-07-27\",\"value\":1},{\"date\":\"2024-07-30\",\"value\":1},{\"date\":\"2024-07-31\",\"value\":2},{\"date\":\"2024-08-01\",\"value\":4},{\"date\":\"2024-08-02\",\"value\":2},{\"date\":\"2024-08-04\",\"value\":1},{\"date\":\"2024-08-05\",\"value\":7},{\"date\":\"2024-08-07\",\"value\":1},{\"date\":\"2024-08-12\",\"value\":2},{\"date\":\"2024-08-15\",\"value\":1},{\"date\":\"2024-08-21\",\"value\":2},{\"date\":\"2024-08-23\",\"value\":1},{\"date\":\"2024-08-27\",\"value\":1},{\"date\":\"2024-08-29\",\"value\":2},{\"date\":\"2024-09-03\",\"value\":1},{\"date\":\"2024-09-07\",\"value\":2},{\"date\":\"2024-09-13\",\"value\":2},{\"date\":\"2024-09-15\",\"value\":1},{\"date\":\"2024-09-16\",\"value\":1},{\"date\":\"2024-09-18\",\"value\":2},{\"date\":\"2024-09-23\",\"value\":1},{\"date\":\"2024-09-24\",\"value\":1},{\"date\":\"2024-09-27\",\"value\":1},{\"date\":\"2024-09-28\",\"value\":1},{\"date\":\"2024-09-29\",\"value\":1},{\"date\":\"2024-09-30\",\"value\":2},{\"date\":\"2024-10-02\",\"value\":1},{\"date\":\"2024-10-03\",\"value\":1},{\"date\":\"2024-10-04\",\"value\":4},{\"date\":\"2024-10-05\",\"value\":1},{\"date\":\"2024-10-08\",\"value\":8},{\"date\":\"2024-10-09\",\"value\":1},{\"date\":\"2024-10-11\",\"value\":3},{\"date\":\"2024-10-15\",\"value\":2},{\"date\":\"2024-10-16\",\"value\":1},{\"date\":\"2024-10-20\",\"value\":2},{\"date\":\"2024-10-25\",\"value\":1},{\"date\":\"2024-10-27\",\"value\":3},{\"date\":\"2024-10-29\",\"value\":9},{\"date\":\"2024-10-30\",\"value\":1},{\"date\":\"2024-10-31\",\"value\":1},{\"date\":\"2024-11-01\",\"value\":1},{\"date\":\"2024-11-04\",\"value\":1},{\"date\":\"2024-11-05\",\"value\":3},{\"date\":\"2024-11-06\",\"value\":2},{\"date\":\"2024-11-08\",\"value\":1},{\"date\":\"2024-11-12\",\"value\":1},{\"date\":\"2024-11-15\",\"value\":1},{\"date\":\"2024-11-16\",\"value\":1},{\"date\":\"2024-11-17\",\"value\":2},{\"date\":\"2024-11-18\",\"value\":1},{\"date\":\"2024-11-19\",\"value\":2},{\"date\":\"2024-11-21\",\"value\":2},{\"date\":\"2024-11-22\",\"value\":1},{\"date\":\"2024-11-24\",\"value\":2},{\"date\":\"2024-11-25\",\"value\":3},{\"date\":\"2024-11-27\",\"value\":1},{\"date\":\"2024-12-02\",\"value\":1},{\"date\":\"2024-12-03\",\"value\":2},{\"date\":\"2024-12-04\",\"value\":2},{\"date\":\"2024-12-05\",\"value\":1},{\"date\":\"2024-12-06\",\"value\":1},{\"date\":\"2024-12-11\",\"value\":2},{\"date\":\"2024-12-13\",\"value\":1},{\"date\":\"2024-12-14\",\"value\":4},{\"date\":\"2024-12-16\",\"value\":2},{\"date\":\"2024-12-17\",\"value\":1},{\"date\":\"2024-12-18\",\"value\":11},{\"date\":\"2024-12-19\",\"value\":1},{\"date\":\"2024-12-22\",\"value\":3},{\"date\":\"2024-12-23\",\"value\":1},{\"date\":\"2024-12-24\",\"value\":6},{\"date\":\"2024-12-25\",\"value\":4},{\"date\":\"2024-12-26\",\"value\":3},{\"date\":\"2024-12-27\",\"value\":4},{\"date\":\"2024-12-28\",\"value\":3},{\"date\":\"2024-12-30\",\"value\":6},{\"date\":\"2024-12-31\",\"value\":2}];\n    const options = {date: { start: new Date('2024-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 6;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-4';\n    const data = [{\"date\":\"2023-01-15\",\"value\":1},{\"date\":\"2023-01-16\",\"value\":4},{\"date\":\"2023-01-18\",\"value\":1},{\"date\":\"2023-01-19\",\"value\":2},{\"date\":\"2023-01-23\",\"value\":2},{\"date\":\"2023-01-27\",\"value\":2},{\"date\":\"2023-01-28\",\"value\":4},{\"date\":\"2023-01-30\",\"value\":1},{\"date\":\"2023-02-01\",\"value\":1},{\"date\":\"2023-02-02\",\"value\":1},{\"date\":\"2023-02-05\",\"value\":2},{\"date\":\"2023-02-06\",\"value\":1},{\"date\":\"2023-02-07\",\"value\":2},{\"date\":\"2023-02-09\",\"value\":1},{\"date\":\"2023-02-11\",\"value\":2},{\"date\":\"2023-02-12\",\"value\":2},{\"date\":\"2023-02-13\",\"value\":1},{\"date\":\"2023-02-15\",\"value\":1},{\"date\":\"2023-02-20\",\"value\":1},{\"date\":\"2023-02-21\",\"value\":4},{\"date\":\"2023-02-28\",\"value\":1},{\"date\":\"2023-03-03\",\"value\":1},{\"date\":\"2023-03-07\",\"value\":4},{\"date\":\"2023-03-08\",\"value\":1},{\"date\":\"2023-03-13\",\"value\":2},{\"date\":\"2023-03-21\",\"value\":3},{\"date\":\"2023-04-04\",\"value\":1},{\"date\":\"2023-04-09\",\"value\":2},{\"date\":\"2023-04-10\",\"value\":1},{\"date\":\"2023-04-11\",\"value\":1},{\"date\":\"2023-04-12\",\"value\":1},{\"date\":\"2023-04-18\",\"value\":1},{\"date\":\"2023-04-27\",\"value\":1},{\"date\":\"2023-04-30\",\"value\":1},{\"date\":\"2023-05-01\",\"value\":1},{\"date\":\"2023-05-03\",\"value\":1},{\"date\":\"2023-05-10\",\"value\":1},{\"date\":\"2023-05-15\",\"value\":2},{\"date\":\"2023-05-21\",\"value\":1},{\"date\":\"2023-05-23\",\"value\":1},{\"date\":\"2023-05-27\",\"value\":2},{\"date\":\"2023-05-28\",\"value\":1},{\"date\":\"2023-05-30\",\"value\":3},{\"date\":\"2023-06-15\",\"value\":1},{\"date\":\"2023-06-16\",\"value\":1},{\"date\":\"2023-06-17\",\"value\":1},{\"date\":\"2023-06-24\",\"value\":1},{\"date\":\"2023-06-27\",\"value\":1},{\"date\":\"2023-07-03\",\"value\":1},{\"date\":\"2023-07-09\",\"value\":1},{\"date\":\"2023-07-11\",\"value\":1},{\"date\":\"2023-07-20\",\"value\":1},{\"date\":\"2023-07-25\",\"value\":2},{\"date\":\"2023-07-28\",\"value\":42},{\"date\":\"2023-07-29\",\"value\":8},{\"date\":\"2023-07-30\",\"value\":2},{\"date\":\"2023-07-31\",\"value\":1},{\"date\":\"2023-08-01\",\"value\":2},{\"date\":\"2023-08-02\",\"value\":1},{\"date\":\"2023-08-04\",\"value\":3},{\"date\":\"2023-08-05\",\"value\":3},{\"date\":\"2023-08-06\",\"value\":1},{\"date\":\"2023-08-08\",\"value\":2},{\"date\":\"2023-08-09\",\"value\":3},{\"date\":\"2023-08-10\",\"value\":3},{\"date\":\"2023-08-11\",\"value\":2},{\"date\":\"2023-08-15\",\"value\":1},{\"date\":\"2023-08-16\",\"value\":2},{\"date\":\"2023-08-19\",\"value\":1},{\"date\":\"2023-08-20\",\"value\":1},{\"date\":\"2023-08-21\",\"value\":6},{\"date\":\"2023-08-22\",\"value\":1},{\"date\":\"2023-08-23\",\"value\":2},{\"date\":\"2023-08-24\",\"value\":1},{\"date\":\"2023-08-26\",\"value\":1},{\"date\":\"2023-09-01\",\"value\":1},{\"date\":\"2023-09-02\",\"value\":3},{\"date\":\"2023-09-06\",\"value\":1},{\"date\":\"2023-09-07\",\"value\":2},{\"date\":\"2023-09-08\",\"value\":2},{\"date\":\"2023-09-10\",\"value\":2},{\"date\":\"2023-09-13\",\"value\":1},{\"date\":\"2023-09-17\",\"value\":1},{\"date\":\"2023-09-19\",\"value\":1},{\"date\":\"2023-09-20\",\"value\":3},{\"date\":\"2023-09-22\",\"value\":1},{\"date\":\"2023-09-23\",\"value\":2},{\"date\":\"2023-09-25\",\"value\":1},{\"date\":\"2023-09-29\",\"value\":1},{\"date\":\"2023-09-30\",\"value\":4},{\"date\":\"2023-10-01\",\"value\":2},{\"date\":\"2023-10-03\",\"value\":2},{\"date\":\"2023-10-04\",\"value\":2},{\"date\":\"2023-10-05\",\"value\":3},{\"date\":\"2023-10-08\",\"value\":2},{\"date\":\"2023-10-10\",\"value\":2},{\"date\":\"2023-10-11\",\"value\":2},{\"date\":\"2023-10-12\",\"value\":1},{\"date\":\"2023-10-13\",\"value\":2},{\"date\":\"2023-10-14\",\"value\":3},{\"date\":\"2023-10-17\",\"value\":4},{\"date\":\"2023-10-18\",\"value\":1},{\"date\":\"2023-10-19\",\"value\":1},{\"date\":\"2023-10-20\",\"value\":3},{\"date\":\"2023-10-21\",\"value\":4},{\"date\":\"2023-10-22\",\"value\":4},{\"date\":\"2023-10-23\",\"value\":1},{\"date\":\"2023-10-25\",\"value\":2},{\"date\":\"2023-10-28\",\"value\":4},{\"date\":\"2023-10-30\",\"value\":2},{\"date\":\"2023-10-31\",\"value\":5},{\"date\":\"2023-11-01\",\"value\":3},{\"date\":\"2023-11-03\",\"value\":1},{\"date\":\"2023-11-04\",\"value\":1},{\"date\":\"2023-11-05\",\"value\":1},{\"date\":\"2023-11-11\",\"value\":2},{\"date\":\"2023-11-14\",\"value\":2},{\"date\":\"2023-11-18\",\"value\":1},{\"date\":\"2023-11-22\",\"value\":1},{\"date\":\"2023-11-27\",\"value\":3},{\"date\":\"2023-11-28\",\"value\":1},{\"date\":\"2023-11-29\",\"value\":1},{\"date\":\"2023-11-30\",\"value\":4},{\"date\":\"2023-12-04\",\"value\":1},{\"date\":\"2023-12-06\",\"value\":2},{\"date\":\"2023-12-07\",\"value\":1},{\"date\":\"2023-12-09\",\"value\":1},{\"date\":\"2023-12-10\",\"value\":1},{\"date\":\"2023-12-11\",\"value\":1},{\"date\":\"2023-12-12\",\"value\":2},{\"date\":\"2023-12-13\",\"value\":7},{\"date\":\"2023-12-14\",\"value\":3},{\"date\":\"2023-12-15\",\"value\":3},{\"date\":\"2023-12-17\",\"value\":4},{\"date\":\"2023-12-20\",\"value\":4},{\"date\":\"2023-12-21\",\"value\":1},{\"date\":\"2023-12-22\",\"value\":2},{\"date\":\"2023-12-25\",\"value\":1},{\"date\":\"2023-12-26\",\"value\":1},{\"date\":\"2023-12-28\",\"value\":1}];\n    const options = {date: { start: new Date('2023-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 8;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-5';\n    const data = [{\"date\":\"2022-01-08\",\"value\":2},{\"date\":\"2022-01-14\",\"value\":2},{\"date\":\"2022-01-15\",\"value\":1},{\"date\":\"2022-01-22\",\"value\":1},{\"date\":\"2022-01-26\",\"value\":1},{\"date\":\"2022-01-27\",\"value\":2},{\"date\":\"2022-01-30\",\"value\":1},{\"date\":\"2022-02-01\",\"value\":2},{\"date\":\"2022-02-03\",\"value\":3},{\"date\":\"2022-02-05\",\"value\":3},{\"date\":\"2022-02-06\",\"value\":1},{\"date\":\"2022-02-07\",\"value\":2},{\"date\":\"2022-02-08\",\"value\":2},{\"date\":\"2022-02-11\",\"value\":1},{\"date\":\"2022-02-12\",\"value\":2},{\"date\":\"2022-02-19\",\"value\":1},{\"date\":\"2022-02-21\",\"value\":1},{\"date\":\"2022-02-26\",\"value\":1},{\"date\":\"2022-03-04\",\"value\":2},{\"date\":\"2022-03-08\",\"value\":1},{\"date\":\"2022-03-09\",\"value\":1},{\"date\":\"2022-03-11\",\"value\":1},{\"date\":\"2022-03-19\",\"value\":1},{\"date\":\"2022-03-20\",\"value\":1},{\"date\":\"2022-03-22\",\"value\":1},{\"date\":\"2022-04-01\",\"value\":1},{\"date\":\"2022-04-02\",\"value\":2},{\"date\":\"2022-04-12\",\"value\":2},{\"date\":\"2022-04-14\",\"value\":1},{\"date\":\"2022-04-15\",\"value\":1},{\"date\":\"2022-04-19\",\"value\":1},{\"date\":\"2022-04-29\",\"value\":1},{\"date\":\"2022-04-30\",\"value\":2},{\"date\":\"2022-05-01\",\"value\":1},{\"date\":\"2022-05-02\",\"value\":1},{\"date\":\"2022-05-03\",\"value\":2},{\"date\":\"2022-05-07\",\"value\":3},{\"date\":\"2022-05-11\",\"value\":1},{\"date\":\"2022-05-12\",\"value\":1},{\"date\":\"2022-05-16\",\"value\":1},{\"date\":\"2022-05-17\",\"value\":1},{\"date\":\"2022-05-28\",\"value\":1},{\"date\":\"2022-06-04\",\"value\":1},{\"date\":\"2022-06-07\",\"value\":1},{\"date\":\"2022-06-09\",\"value\":1},{\"date\":\"2022-06-10\",\"value\":2},{\"date\":\"2022-06-11\",\"value\":1},{\"date\":\"2022-06-13\",\"value\":1},{\"date\":\"2022-06-17\",\"value\":1},{\"date\":\"2022-06-28\",\"value\":1},{\"date\":\"2022-07-05\",\"value\":2},{\"date\":\"2022-07-12\",\"value\":1},{\"date\":\"2022-07-20\",\"value\":2},{\"date\":\"2022-07-23\",\"value\":2},{\"date\":\"2022-07-28\",\"value\":1},{\"date\":\"2022-07-29\",\"value\":1},{\"date\":\"2022-07-30\",\"value\":1},{\"date\":\"2022-08-04\",\"value\":1},{\"date\":\"2022-08-20\",\"value\":1},{\"date\":\"2022-08-21\",\"value\":1},{\"date\":\"2022-08-22\",\"value\":1},{\"date\":\"2022-08-24\",\"value\":1},{\"date\":\"2022-08-25\",\"value\":2},{\"date\":\"2022-08-27\",\"value\":1},{\"date\":\"2022-08-28\",\"value\":1},{\"date\":\"2022-08-29\",\"value\":2},{\"date\":\"2022-08-30\",\"value\":2},{\"date\":\"2022-08-31\",\"value\":2},{\"date\":\"2022-09-01\",\"value\":1},{\"date\":\"2022-09-02\",\"value\":1},{\"date\":\"2022-09-03\",\"value\":1},{\"date\":\"2022-09-06\",\"value\":5},{\"date\":\"2022-09-07\",\"value\":2},{\"date\":\"2022-09-09\",\"value\":1},{\"date\":\"2022-09-11\",\"value\":1},{\"date\":\"2022-09-13\",\"value\":1},{\"date\":\"2022-09-17\",\"value\":2},{\"date\":\"2022-09-18\",\"value\":2},{\"date\":\"2022-09-19\",\"value\":2},{\"date\":\"2022-09-20\",\"value\":3},{\"date\":\"2022-09-24\",\"value\":1},{\"date\":\"2022-09-25\",\"value\":1},{\"date\":\"2022-09-26\",\"value\":2},{\"date\":\"2022-09-27\",\"value\":1},{\"date\":\"2022-10-01\",\"value\":1},{\"date\":\"2022-10-08\",\"value\":2},{\"date\":\"2022-10-09\",\"value\":1},{\"date\":\"2022-10-11\",\"value\":1},{\"date\":\"2022-10-17\",\"value\":1},{\"date\":\"2022-10-18\",\"value\":2},{\"date\":\"2022-10-19\",\"value\":1},{\"date\":\"2022-10-20\",\"value\":1},{\"date\":\"2022-10-24\",\"value\":2},{\"date\":\"2022-10-25\",\"value\":1},{\"date\":\"2022-10-26\",\"value\":4},{\"date\":\"2022-10-27\",\"value\":1},{\"date\":\"2022-10-29\",\"value\":1},{\"date\":\"2022-10-30\",\"value\":1},{\"date\":\"2022-11-01\",\"value\":1},{\"date\":\"2022-11-22\",\"value\":1},{\"date\":\"2022-11-24\",\"value\":1},{\"date\":\"2022-11-29\",\"value\":2},{\"date\":\"2022-11-30\",\"value\":1},{\"date\":\"2022-12-03\",\"value\":3},{\"date\":\"2022-12-04\",\"value\":2},{\"date\":\"2022-12-05\",\"value\":1},{\"date\":\"2022-12-06\",\"value\":2},{\"date\":\"2022-12-07\",\"value\":2},{\"date\":\"2022-12-08\",\"value\":1},{\"date\":\"2022-12-09\",\"value\":1},{\"date\":\"2022-12-10\",\"value\":2},{\"date\":\"2022-12-11\",\"value\":1},{\"date\":\"2022-12-12\",\"value\":1},{\"date\":\"2022-12-13\",\"value\":1},{\"date\":\"2022-12-14\",\"value\":1},{\"date\":\"2022-12-15\",\"value\":1},{\"date\":\"2022-12-16\",\"value\":2},{\"date\":\"2022-12-17\",\"value\":1},{\"date\":\"2022-12-18\",\"value\":1},{\"date\":\"2022-12-19\",\"value\":1},{\"date\":\"2022-12-20\",\"value\":1},{\"date\":\"2022-12-21\",\"value\":7},{\"date\":\"2022-12-22\",\"value\":1},{\"date\":\"2022-12-23\",\"value\":1},{\"date\":\"2022-12-27\",\"value\":1}];\n    const options = {date: { start: new Date('2022-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 7;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-6';\n    const data = [{\"date\":\"2021-01-02\",\"value\":1},{\"date\":\"2021-01-03\",\"value\":1},{\"date\":\"2021-01-04\",\"value\":2},{\"date\":\"2021-01-06\",\"value\":1},{\"date\":\"2021-01-08\",\"value\":3},{\"date\":\"2021-01-09\",\"value\":2},{\"date\":\"2021-01-10\",\"value\":2},{\"date\":\"2021-01-11\",\"value\":2},{\"date\":\"2021-01-14\",\"value\":1},{\"date\":\"2021-01-17\",\"value\":2},{\"date\":\"2021-01-18\",\"value\":1},{\"date\":\"2021-01-19\",\"value\":1},{\"date\":\"2021-01-20\",\"value\":5},{\"date\":\"2021-01-21\",\"value\":1},{\"date\":\"2021-01-22\",\"value\":2},{\"date\":\"2021-01-25\",\"value\":1},{\"date\":\"2021-01-27\",\"value\":1},{\"date\":\"2021-01-28\",\"value\":1},{\"date\":\"2021-02-01\",\"value\":1},{\"date\":\"2021-02-17\",\"value\":1},{\"date\":\"2021-02-25\",\"value\":1},{\"date\":\"2021-03-03\",\"value\":1},{\"date\":\"2021-03-06\",\"value\":2},{\"date\":\"2021-03-08\",\"value\":1},{\"date\":\"2021-03-14\",\"value\":1},{\"date\":\"2021-03-20\",\"value\":1},{\"date\":\"2021-03-22\",\"value\":1},{\"date\":\"2021-03-24\",\"value\":1},{\"date\":\"2021-03-25\",\"value\":1},{\"date\":\"2021-03-26\",\"value\":3},{\"date\":\"2021-03-27\",\"value\":1},{\"date\":\"2021-03-29\",\"value\":1},{\"date\":\"2021-04-01\",\"value\":1},{\"date\":\"2021-04-02\",\"value\":2},{\"date\":\"2021-04-05\",\"value\":2},{\"date\":\"2021-04-07\",\"value\":4},{\"date\":\"2021-04-08\",\"value\":1},{\"date\":\"2021-04-10\",\"value\":1},{\"date\":\"2021-04-12\",\"value\":1},{\"date\":\"2021-04-14\",\"value\":1},{\"date\":\"2021-04-15\",\"value\":2},{\"date\":\"2021-04-16\",\"value\":2},{\"date\":\"2021-04-17\",\"value\":1},{\"date\":\"2021-04-18\",\"value\":1},{\"date\":\"2021-04-19\",\"value\":1},{\"date\":\"2021-04-20\",\"value\":2},{\"date\":\"2021-04-21\",\"value\":1},{\"date\":\"2021-04-23\",\"value\":1},{\"date\":\"2021-04-26\",\"value\":3},{\"date\":\"2021-04-29\",\"value\":1},{\"date\":\"2021-05-02\",\"value\":2},{\"date\":\"2021-05-05\",\"value\":1},{\"date\":\"2021-05-07\",\"value\":2},{\"date\":\"2021-05-10\",\"value\":1},{\"date\":\"2021-05-11\",\"value\":2},{\"date\":\"2021-05-13\",\"value\":1},{\"date\":\"2021-05-14\",\"value\":2},{\"date\":\"2021-05-17\",\"value\":1},{\"date\":\"2021-05-20\",\"value\":1},{\"date\":\"2021-05-21\",\"value\":2},{\"date\":\"2021-05-23\",\"value\":3},{\"date\":\"2021-05-29\",\"value\":1},{\"date\":\"2021-05-31\",\"value\":1},{\"date\":\"2021-06-02\",\"value\":1},{\"date\":\"2021-06-04\",\"value\":4},{\"date\":\"2021-06-05\",\"value\":1},{\"date\":\"2021-06-06\",\"value\":1},{\"date\":\"2021-06-07\",\"value\":1},{\"date\":\"2021-06-08\",\"value\":1},{\"date\":\"2021-06-10\",\"value\":2},{\"date\":\"2021-06-11\",\"value\":2},{\"date\":\"2021-06-12\",\"value\":1},{\"date\":\"2021-06-19\",\"value\":1},{\"date\":\"2021-06-22\",\"value\":1},{\"date\":\"2021-07-01\",\"value\":2},{\"date\":\"2021-07-08\",\"value\":1},{\"date\":\"2021-07-09\",\"value\":1},{\"date\":\"2021-07-14\",\"value\":2},{\"date\":\"2021-07-15\",\"value\":1},{\"date\":\"2021-07-16\",\"value\":1},{\"date\":\"2021-07-17\",\"value\":3},{\"date\":\"2021-07-18\",\"value\":1},{\"date\":\"2021-07-19\",\"value\":1},{\"date\":\"2021-07-20\",\"value\":2},{\"date\":\"2021-07-21\",\"value\":1},{\"date\":\"2021-07-22\",\"value\":1},{\"date\":\"2021-07-23\",\"value\":1},{\"date\":\"2021-07-24\",\"value\":2},{\"date\":\"2021-07-25\",\"value\":1},{\"date\":\"2021-07-26\",\"value\":1},{\"date\":\"2021-07-27\",\"value\":1},{\"date\":\"2021-07-28\",\"value\":1},{\"date\":\"2021-07-29\",\"value\":1},{\"date\":\"2021-07-30\",\"value\":1},{\"date\":\"2021-07-31\",\"value\":2},{\"date\":\"2021-08-01\",\"value\":2},{\"date\":\"2021-08-02\",\"value\":3},{\"date\":\"2021-08-03\",\"value\":2},{\"date\":\"2021-08-04\",\"value\":1},{\"date\":\"2021-08-05\",\"value\":1},{\"date\":\"2021-08-06\",\"value\":1},{\"date\":\"2021-08-07\",\"value\":1},{\"date\":\"2021-08-08\",\"value\":2},{\"date\":\"2021-08-09\",\"value\":1},{\"date\":\"2021-08-11\",\"value\":2},{\"date\":\"2021-08-12\",\"value\":1},{\"date\":\"2021-08-13\",\"value\":1},{\"date\":\"2021-08-14\",\"value\":1},{\"date\":\"2021-08-16\",\"value\":1},{\"date\":\"2021-08-17\",\"value\":1},{\"date\":\"2021-08-18\",\"value\":2},{\"date\":\"2021-08-20\",\"value\":1},{\"date\":\"2021-08-21\",\"value\":1},{\"date\":\"2021-08-22\",\"value\":1},{\"date\":\"2021-08-23\",\"value\":1},{\"date\":\"2021-08-24\",\"value\":1},{\"date\":\"2021-08-28\",\"value\":1},{\"date\":\"2021-08-30\",\"value\":4},{\"date\":\"2021-09-03\",\"value\":2},{\"date\":\"2021-09-05\",\"value\":1},{\"date\":\"2021-09-09\",\"value\":1},{\"date\":\"2021-09-13\",\"value\":2},{\"date\":\"2021-09-19\",\"value\":1},{\"date\":\"2021-10-01\",\"value\":1},{\"date\":\"2021-10-05\",\"value\":1},{\"date\":\"2021-10-10\",\"value\":2},{\"date\":\"2021-10-11\",\"value\":3},{\"date\":\"2021-10-12\",\"value\":1},{\"date\":\"2021-10-15\",\"value\":1},{\"date\":\"2021-10-17\",\"value\":1},{\"date\":\"2021-10-19\",\"value\":2},{\"date\":\"2021-10-20\",\"value\":2},{\"date\":\"2021-10-28\",\"value\":1},{\"date\":\"2021-10-29\",\"value\":2},{\"date\":\"2021-10-30\",\"value\":2},{\"date\":\"2021-11-04\",\"value\":1},{\"date\":\"2021-11-06\",\"value\":1},{\"date\":\"2021-11-08\",\"value\":1},{\"date\":\"2021-11-15\",\"value\":1},{\"date\":\"2021-11-17\",\"value\":1},{\"date\":\"2021-11-20\",\"value\":2},{\"date\":\"2021-11-29\",\"value\":1},{\"date\":\"2021-11-30\",\"value\":3},{\"date\":\"2021-12-02\",\"value\":2},{\"date\":\"2021-12-03\",\"value\":2},{\"date\":\"2021-12-04\",\"value\":1},{\"date\":\"2021-12-08\",\"value\":1},{\"date\":\"2021-12-11\",\"value\":1},{\"date\":\"2021-12-17\",\"value\":1},{\"date\":\"2021-12-20\",\"value\":1},{\"date\":\"2021-12-21\",\"value\":1},{\"date\":\"2021-12-24\",\"value\":1},{\"date\":\"2021-12-28\",\"value\":1},{\"date\":\"2021-12-29\",\"value\":2},{\"date\":\"2021-12-30\",\"value\":1}];\n    const options = {date: { start: new Date('2021-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 5;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-7';\n    const data = [{\"date\":\"2020-01-01\",\"value\":1},{\"date\":\"2020-01-03\",\"value\":1},{\"date\":\"2020-01-10\",\"value\":1},{\"date\":\"2020-01-12\",\"value\":1},{\"date\":\"2020-01-13\",\"value\":1},{\"date\":\"2020-01-19\",\"value\":1},{\"date\":\"2020-01-22\",\"value\":1},{\"date\":\"2020-01-23\",\"value\":1},{\"date\":\"2020-01-28\",\"value\":1},{\"date\":\"2020-01-29\",\"value\":2},{\"date\":\"2020-02-01\",\"value\":1},{\"date\":\"2020-02-04\",\"value\":1},{\"date\":\"2020-02-06\",\"value\":1},{\"date\":\"2020-02-07\",\"value\":2},{\"date\":\"2020-02-08\",\"value\":1},{\"date\":\"2020-02-10\",\"value\":1},{\"date\":\"2020-02-11\",\"value\":1},{\"date\":\"2020-02-17\",\"value\":2},{\"date\":\"2020-02-18\",\"value\":1},{\"date\":\"2020-02-19\",\"value\":3},{\"date\":\"2020-02-21\",\"value\":1},{\"date\":\"2020-02-22\",\"value\":2},{\"date\":\"2020-02-24\",\"value\":2},{\"date\":\"2020-02-25\",\"value\":1},{\"date\":\"2020-02-26\",\"value\":2},{\"date\":\"2020-03-01\",\"value\":1},{\"date\":\"2020-03-02\",\"value\":1},{\"date\":\"2020-03-03\",\"value\":1},{\"date\":\"2020-03-06\",\"value\":1},{\"date\":\"2020-03-07\",\"value\":1},{\"date\":\"2020-03-14\",\"value\":1},{\"date\":\"2020-03-16\",\"value\":2},{\"date\":\"2020-03-18\",\"value\":1},{\"date\":\"2020-03-22\",\"value\":1},{\"date\":\"2020-03-29\",\"value\":1},{\"date\":\"2020-03-31\",\"value\":1},{\"date\":\"2020-04-01\",\"value\":1},{\"date\":\"2020-04-03\",\"value\":1},{\"date\":\"2020-04-04\",\"value\":1},{\"date\":\"2020-04-05\",\"value\":2},{\"date\":\"2020-04-07\",\"value\":1},{\"date\":\"2020-04-08\",\"value\":2},{\"date\":\"2020-04-09\",\"value\":1},{\"date\":\"2020-04-13\",\"value\":1},{\"date\":\"2020-04-15\",\"value\":1},{\"date\":\"2020-04-16\",\"value\":1},{\"date\":\"2020-04-27\",\"value\":2},{\"date\":\"2020-04-29\",\"value\":2},{\"date\":\"2020-04-30\",\"value\":1},{\"date\":\"2020-05-01\",\"value\":1},{\"date\":\"2020-05-03\",\"value\":1},{\"date\":\"2020-05-04\",\"value\":1},{\"date\":\"2020-05-07\",\"value\":1},{\"date\":\"2020-05-08\",\"value\":2},{\"date\":\"2020-05-09\",\"value\":1},{\"date\":\"2020-05-10\",\"value\":2},{\"date\":\"2020-05-12\",\"value\":1},{\"date\":\"2020-05-15\",\"value\":4},{\"date\":\"2020-05-17\",\"value\":1},{\"date\":\"2020-05-18\",\"value\":1},{\"date\":\"2020-05-20\",\"value\":1},{\"date\":\"2020-05-22\",\"value\":1},{\"date\":\"2020-05-23\",\"value\":1},{\"date\":\"2020-05-24\",\"value\":2},{\"date\":\"2020-05-28\",\"value\":1},{\"date\":\"2020-05-29\",\"value\":1},{\"date\":\"2020-05-31\",\"value\":1},{\"date\":\"2020-06-03\",\"value\":1},{\"date\":\"2020-06-04\",\"value\":1},{\"date\":\"2020-06-05\",\"value\":2},{\"date\":\"2020-06-08\",\"value\":2},{\"date\":\"2020-06-10\",\"value\":1},{\"date\":\"2020-06-11\",\"value\":2},{\"date\":\"2020-06-15\",\"value\":3},{\"date\":\"2020-06-16\",\"value\":1},{\"date\":\"2020-06-19\",\"value\":3},{\"date\":\"2020-06-22\",\"value\":2},{\"date\":\"2020-06-25\",\"value\":1},{\"date\":\"2020-06-29\",\"value\":1},{\"date\":\"2020-07-02\",\"value\":1},{\"date\":\"2020-07-04\",\"value\":1},{\"date\":\"2020-07-05\",\"value\":1},{\"date\":\"2020-07-06\",\"value\":1},{\"date\":\"2020-07-08\",\"value\":3},{\"date\":\"2020-07-09\",\"value\":1},{\"date\":\"2020-07-10\",\"value\":1},{\"date\":\"2020-07-11\",\"value\":3},{\"date\":\"2020-07-12\",\"value\":3},{\"date\":\"2020-07-13\",\"value\":4},{\"date\":\"2020-07-14\",\"value\":1},{\"date\":\"2020-07-16\",\"value\":1},{\"date\":\"2020-07-18\",\"value\":1},{\"date\":\"2020-07-21\",\"value\":3},{\"date\":\"2020-07-22\",\"value\":1},{\"date\":\"2020-07-23\",\"value\":1},{\"date\":\"2020-07-24\",\"value\":1},{\"date\":\"2020-07-25\",\"value\":3},{\"date\":\"2020-07-27\",\"value\":2},{\"date\":\"2020-07-28\",\"value\":1},{\"date\":\"2020-07-29\",\"value\":1},{\"date\":\"2020-07-31\",\"value\":1},{\"date\":\"2020-08-01\",\"value\":1},{\"date\":\"2020-08-03\",\"value\":4},{\"date\":\"2020-08-06\",\"value\":1},{\"date\":\"2020-08-07\",\"value\":1},{\"date\":\"2020-08-10\",\"value\":1},{\"date\":\"2020-08-11\",\"value\":1},{\"date\":\"2020-08-13\",\"value\":1},{\"date\":\"2020-09-01\",\"value\":1},{\"date\":\"2020-09-04\",\"value\":2},{\"date\":\"2020-09-13\",\"value\":1},{\"date\":\"2020-09-15\",\"value\":3},{\"date\":\"2020-09-27\",\"value\":1},{\"date\":\"2020-09-29\",\"value\":4},{\"date\":\"2020-09-30\",\"value\":1},{\"date\":\"2020-10-01\",\"value\":2},{\"date\":\"2020-10-02\",\"value\":1},{\"date\":\"2020-10-08\",\"value\":1},{\"date\":\"2020-10-11\",\"value\":1},{\"date\":\"2020-10-17\",\"value\":3},{\"date\":\"2020-10-18\",\"value\":1},{\"date\":\"2020-10-20\",\"value\":1},{\"date\":\"2020-10-21\",\"value\":3},{\"date\":\"2020-10-23\",\"value\":1},{\"date\":\"2020-10-25\",\"value\":1},{\"date\":\"2020-10-27\",\"value\":1},{\"date\":\"2020-10-28\",\"value\":2},{\"date\":\"2020-10-31\",\"value\":1},{\"date\":\"2020-11-01\",\"value\":1},{\"date\":\"2020-11-02\",\"value\":2},{\"date\":\"2020-11-06\",\"value\":2},{\"date\":\"2020-11-07\",\"value\":1},{\"date\":\"2020-11-12\",\"value\":2},{\"date\":\"2020-11-16\",\"value\":1},{\"date\":\"2020-11-18\",\"value\":2},{\"date\":\"2020-11-21\",\"value\":1},{\"date\":\"2020-11-23\",\"value\":1},{\"date\":\"2020-11-25\",\"value\":1},{\"date\":\"2020-11-27\",\"value\":1},{\"date\":\"2020-12-01\",\"value\":3},{\"date\":\"2020-12-02\",\"value\":1},{\"date\":\"2020-12-04\",\"value\":1},{\"date\":\"2020-12-07\",\"value\":1},{\"date\":\"2020-12-10\",\"value\":1},{\"date\":\"2020-12-11\",\"value\":2},{\"date\":\"2020-12-13\",\"value\":4},{\"date\":\"2020-12-20\",\"value\":2},{\"date\":\"2020-12-30\",\"value\":1}];\n    const options = {date: { start: new Date('2020-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 4;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-8';\n    const data = [{\"date\":\"2019-01-01\",\"value\":1},{\"date\":\"2019-01-05\",\"value\":1},{\"date\":\"2019-01-06\",\"value\":1},{\"date\":\"2019-01-12\",\"value\":1},{\"date\":\"2019-01-21\",\"value\":1},{\"date\":\"2019-01-26\",\"value\":2},{\"date\":\"2019-01-30\",\"value\":1},{\"date\":\"2019-02-01\",\"value\":1},{\"date\":\"2019-02-02\",\"value\":1},{\"date\":\"2019-02-05\",\"value\":1},{\"date\":\"2019-02-09\",\"value\":1},{\"date\":\"2019-03-04\",\"value\":3},{\"date\":\"2019-03-11\",\"value\":2},{\"date\":\"2019-03-13\",\"value\":1},{\"date\":\"2019-04-23\",\"value\":1},{\"date\":\"2019-05-10\",\"value\":1},{\"date\":\"2019-05-18\",\"value\":1},{\"date\":\"2019-05-20\",\"value\":1},{\"date\":\"2019-05-27\",\"value\":1},{\"date\":\"2019-05-30\",\"value\":2},{\"date\":\"2019-06-19\",\"value\":1},{\"date\":\"2019-06-20\",\"value\":1},{\"date\":\"2019-06-28\",\"value\":1},{\"date\":\"2019-07-07\",\"value\":1},{\"date\":\"2019-08-10\",\"value\":1},{\"date\":\"2019-08-31\",\"value\":1},{\"date\":\"2019-09-05\",\"value\":1},{\"date\":\"2019-09-06\",\"value\":1},{\"date\":\"2019-09-07\",\"value\":1},{\"date\":\"2019-09-08\",\"value\":4},{\"date\":\"2019-09-10\",\"value\":1},{\"date\":\"2019-09-11\",\"value\":1},{\"date\":\"2019-09-13\",\"value\":1},{\"date\":\"2019-09-15\",\"value\":1},{\"date\":\"2019-09-18\",\"value\":2},{\"date\":\"2019-09-22\",\"value\":1},{\"date\":\"2019-09-24\",\"value\":1},{\"date\":\"2019-09-25\",\"value\":1},{\"date\":\"2019-09-26\",\"value\":1},{\"date\":\"2019-10-01\",\"value\":1},{\"date\":\"2019-10-03\",\"value\":1},{\"date\":\"2019-10-06\",\"value\":1},{\"date\":\"2019-10-14\",\"value\":1},{\"date\":\"2019-10-15\",\"value\":1},{\"date\":\"2019-10-18\",\"value\":1},{\"date\":\"2019-10-19\",\"value\":1},{\"date\":\"2019-10-28\",\"value\":1},{\"date\":\"2019-10-29\",\"value\":1},{\"date\":\"2019-11-02\",\"value\":1},{\"date\":\"2019-11-07\",\"value\":1},{\"date\":\"2019-11-10\",\"value\":1},{\"date\":\"2019-11-11\",\"value\":1},{\"date\":\"2019-11-12\",\"value\":1},{\"date\":\"2019-11-13\",\"value\":1},{\"date\":\"2019-11-14\",\"value\":1},{\"date\":\"2019-11-17\",\"value\":1},{\"date\":\"2019-11-21\",\"value\":1},{\"date\":\"2019-11-27\",\"value\":1},{\"date\":\"2019-11-28\",\"value\":1},{\"date\":\"2019-12-02\",\"value\":1},{\"date\":\"2019-12-04\",\"value\":1},{\"date\":\"2019-12-21\",\"value\":1}];\n    const options = {date: { start: new Date('2019-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 4;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-9';\n    const data = [{\"date\":\"2018-01-01\",\"value\":1},{\"date\":\"2018-01-07\",\"value\":1},{\"date\":\"2018-01-24\",\"value\":1},{\"date\":\"2018-02-01\",\"value\":1},{\"date\":\"2018-02-06\",\"value\":1},{\"date\":\"2018-02-19\",\"value\":1},{\"date\":\"2018-02-25\",\"value\":1},{\"date\":\"2018-03-13\",\"value\":1},{\"date\":\"2018-03-16\",\"value\":2},{\"date\":\"2018-04-22\",\"value\":1},{\"date\":\"2018-04-28\",\"value\":1},{\"date\":\"2018-05-02\",\"value\":2},{\"date\":\"2018-05-05\",\"value\":1},{\"date\":\"2018-05-06\",\"value\":1},{\"date\":\"2018-05-08\",\"value\":1},{\"date\":\"2018-05-22\",\"value\":1},{\"date\":\"2018-06-09\",\"value\":2},{\"date\":\"2018-07-05\",\"value\":1},{\"date\":\"2018-07-09\",\"value\":1},{\"date\":\"2018-07-12\",\"value\":1},{\"date\":\"2018-07-20\",\"value\":1},{\"date\":\"2018-08-06\",\"value\":1},{\"date\":\"2018-08-08\",\"value\":1},{\"date\":\"2018-08-13\",\"value\":1},{\"date\":\"2018-09-10\",\"value\":1},{\"date\":\"2018-09-22\",\"value\":1},{\"date\":\"2018-09-23\",\"value\":1},{\"date\":\"2018-09-24\",\"value\":1},{\"date\":\"2018-09-25\",\"value\":1},{\"date\":\"2018-09-27\",\"value\":1},{\"date\":\"2018-10-04\",\"value\":1},{\"date\":\"2018-10-09\",\"value\":1},{\"date\":\"2018-10-10\",\"value\":2},{\"date\":\"2018-11-28\",\"value\":1},{\"date\":\"2018-11-29\",\"value\":1}];\n    const options = {date: { start: new Date('2018-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 2;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-10';\n    const data = [{\"date\":\"2017-01-21\",\"value\":1},{\"date\":\"2017-04-20\",\"value\":1},{\"date\":\"2017-04-28\",\"value\":1},{\"date\":\"2017-05-10\",\"value\":1},{\"date\":\"2017-05-16\",\"value\":1},{\"date\":\"2017-06-10\",\"value\":1},{\"date\":\"2017-06-14\",\"value\":1},{\"date\":\"2017-07-04\",\"value\":1},{\"date\":\"2017-08-31\",\"value\":1},{\"date\":\"2017-09-16\",\"value\":2},{\"date\":\"2017-09-21\",\"value\":1},{\"date\":\"2017-09-24\",\"value\":1},{\"date\":\"2017-12-01\",\"value\":1},{\"date\":\"2017-12-02\",\"value\":1},{\"date\":\"2017-12-13\",\"value\":1}];\n    const options = {date: { start: new Date('2017-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 2;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\n  })();\n\n  (function() {\n    const graphId = 'contribution-graph-11';\n    const data = [{\"date\":\"2016-01-01\",\"value\":1},{\"date\":\"2016-10-05\",\"value\":1},{\"date\":\"2016-11-18\",\"value\":1},{\"date\":\"2016-11-22\",\"value\":2},{\"date\":\"2016-12-09\",\"value\":1},{\"date\":\"2016-12-13\",\"value\":1}];\n    const options = {date: { start: new Date('2016-01-01') }, domain: { type: 'year' }, subDomain: { type: 'day' }, range: 1};\n    const maxValue = 2;\n    const displayData = data.map(function(point) {\n      const value = point.value || 0;\n      if (options.maxValue \u0026\u0026 value \u003e options.maxValue) {\n        return Object.assign({}, point, { value: options.maxValue });\n      }\n      return point;\n    });\n\n    function fitGraph() {\n      const inner = document.getElementById(graphId);\n      if (!inner) return;\n\n      const outer = inner.parentElement;\n      if (!outer) return;\n\n      if (!inner.dataset.baseWidth) {\n        inner.dataset.baseWidth = String(inner.scrollWidth || inner.getBoundingClientRect().width || 0);\n      }\n\n      const baseWidth = Number(inner.dataset.baseWidth) || inner.scrollWidth || inner.getBoundingClientRect().width || 0;\n      const scale = baseWidth \u003e 0 ? Math.min(1, outer.clientWidth / baseWidth) : 1;\n      inner.style.zoom = String(scale);\n    }\n\n    function paintGraph() {\n      // Clear existing graph\n      const container = document.getElementById(graphId);\n      if (!container) return;\n      container.innerHTML = '';\n      delete container.dataset.baseWidth;\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: displayData,\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                const original = data.find(function(point) {\n                  return point.date === dayjsDate.format('YYYY-MM-DD');\n                });\n                const originalValue = original ? (original.value || 0) : (value || 0);\n                return (originalValue ? originalValue : 'No') + ' posts on ' + dayjsDate.format('MMM D, YYYY');\n              },\n            },\n          ],\n        ]\n      );\n\n      fitGraph();\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    if (!window._contributionGraphFitters) {\n      window._contributionGraphFitters = [];\n    }\n    window._contributionGraphFitters.push(fitGraph);\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  window.addEventListener('resize', function() {\n    if (window._contributionGraphFitters) {\n      window._contributionGraphFitters.forEach(function(fit) {\n        fit();\n      });\n    }\n  });\n});\n\u003c/script\u003e",
      "content_text": "\nI've been posting on this site since 2016, when layoffs were rolling through\nthe company I worked for at the time.  Starting a personal blog and a pile of\nside projects felt like one of the best things I could do for my resume, so off\nI went.  This site is built on \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, more about that in the\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.\n\n![screenshot-2025-01-31T21-23-13-643Z.png](https://dropper.waylonwalker.com/api/file/7b6cf2c2-2299-4320-b58f-b0bebf2d0504.png)\n\nThe old version of this page embedded static SVGs from my Python Markata build.\nThose files are gone in the `markata-go` site, so this page now renders the\nyearly posting history directly from the current content set.\n\n## Post Contributions All Time Monthly\n\n```contribution-graph\n{\n  \"data\": [\n    {% for post in core.filter(\"published == true\") %}\n    {\"date\": \"{{ post.Date.Format \\\"2006-01-02\\\" }}\", \"value\": 1}{% if not loop.last %},{% endif %}\n    {% endfor %}\n  ],\n  \"options\": {\n    \"year\": 2016,\n    \"range\": 120,\n    \"domain\": \"month\",\n    \"subDomain\": \"day\",\n    \"maxPercentile\": 95\n  }\n}\n```\n## Post Contributions in 2026\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2026,\n    \"range\": 1,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2025\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2025,\n    \"range\": 1,\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    \"range\": 1,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\",\n    \"maxPercentile\": 95\n  }\n}\n```\n\n## Post Contributions in 2023\n\n2023 was a very busy year for me and I started slowing down.  About mid year I\nfelt like I had a lot that I wanted to get out, but felt like I couldn't,\nbecause I did not have the time to blog, so I added \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e on 7/22/2023\nwith this [first thought](https://waylonwalker.com/thoughts-2/).\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2023,\n    \"range\": 1,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\",\n    \"maxValue\": 8\n  }\n}\n```\n\n\u003e Notice the huge uptick that started immediately as shots was released\n\n## Post Contributions in 2022\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2022,\n    \"range\": 1,\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 to make a blog\npost.  A blog post did not need to be a super long essay, but could be the size\nof a tweet.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2021,\n    \"range\": 1,\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    \"range\": 1,\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 very busy leading a migration to\nthe cloud, containerized data pipeline orchestration, and setting up new\nprojects and templates using \u003ca href=\"/kedro/\" class=\"wikilink\" data-title=\"Kedro\" data-description=\"My Notes about using kedro\" data-date=\"2019-11-02\"\u003eKedro\u003c/a\u003e\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2019,\n    \"range\": 1,\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 \u003ca href=\"/vim-notes/\" class=\"wikilink\" data-title=\"Vim Notes\" data-description=\"norcalli/neovim-plugin\" data-date=\"2018-02-01\"\u003eVim Notes\u003c/a\u003e and rounding out with \u003ca href=\"/bash/\" class=\"wikilink\" data-title=\"📝 Bash Notes\" data-description=\"Waylon Walker\u0026#39;s Bash Notes\" data-date=\"2019-09-08\"\u003e📝 Bash Notes\u003c/a\u003e.  I had been\nwatching luke smith for a awhile, and started managing my first linux server at\nwork.  I was stuck with windows at the time, but wsl was a new thing that let\nme run linux in the terminal.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2018,\n    \"range\": 1,\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 5 years into my\ncareer, and layoffs were happening hard at the time.  I remember fist landing 5\nyears before and being told in the companies long history they have never laid\noff engineers, it was a very safe place to be.  This was a wake up call that it\nmight all turn around and I would take nothing with me.  Blogging became my way\nto document things I was learning, it was making be better at communicating,\nand giving me a reason to take a deeper dive into interesting topics.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2017,\n    \"range\": 1,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n\n## Post Contributions in 2016\n\n2016 was the year that I created my github account, and really got serious\nabout career switching from Mechanical Engineering to Software Engineering.\nAll of my 2016 posts are back-dated github stars.\n\n```contribution-graph\n{\n  \"options\": {\n    \"year\": 2016,\n    \"range\": 1,\n    \"domain\": \"year\",\n    \"subDomain\": \"day\"\n  }\n}\n```\n",
      "summary": "I've been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...",
      "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": [
        "meta",
        "slash"
      ]
    },
    {
      "id": "https://waylonwalker.com/ublue-os-ucore/",
      "url": "https://waylonwalker.com/ublue-os-ucore/",
      "title": "⭐ ublue-os ucore",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/ublue-os\" 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\"\u003eublue-os\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/ublue-os/ucore\" 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\"\u003eucore\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003eAn OCI base image of Fedora CoreOS with batteries included\u003c/p\u003e\n",
      "content_text": "\n[ublue-os](https://github.com/ublue-os) has done a fantastic job with [ucore](https://github.com/ublue-os/ucore). Highly recommend taking a look.\n\nAn OCI base image of Fedora CoreOS with batteries included\n",
      "summary": "ublue-os has done a fantastic job with ucore. Highly recommend taking a look.",
      "date_published": "2025-01-21T22:22:29Z",
      "date_modified": "2025-01-21T22:22:29Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/ublue-os-bazzite/",
      "url": "https://waylonwalker.com/ublue-os-bazzite/",
      "title": "⭐ ublue-os bazzite",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/ublue-os/bazzite\" 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\"\u003ebazzite\u003c/a\u003e by \u003ca href=\"https://github.com/ublue-os\" 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\"\u003eublue-os\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eBazzite is a cloud native image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.\u003c/p\u003e\n",
      "content_text": "\nJust starred [bazzite](https://github.com/ublue-os/bazzite) by [ublue-os](https://github.com/ublue-os). It's an exciting project with a lot to offer.\n\nBazzite is a cloud native image built upon Fedora Atomic Desktops that brings the best of Linux gaming to all of your devices - including your favorite handheld.\n",
      "summary": "Just starred bazzite by ublue-os. It's an exciting project with a lot to offer.",
      "date_published": "2025-01-21T22:22:12Z",
      "date_modified": "2025-01-21T22:22:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-538/",
      "url": "https://waylonwalker.com/thought-538/",
      "title": "💭 poolers.postgresql.cnpg.io CRD metadata.annotations Too long ·...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/cloudnative-pg/charts/issues/325\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/42368c5206f375a8cd5aa7b6fd8a9f0832a56704f689e76a81e392bf8e484f6a/cloudnative-pg/charts/issues/325\" alt=\"poolers.postgresql.cnpg.io CRD metadata.annotations Too long · Issue #325 · cloudnative-pg/charts — Unable to deploy helm chart using ArgoCD. Getting following error Failed sync attempt to : one or more objects failed to apply, reason: CustomResourceDefinition.apiextensions.k8s.io \u0026#34;poolers.postgr...\" loading=\"lazy\"/ data-glightbox=\"description: poolers.postgresql.cnpg.io CRD metadata.annotations Too long · Issue #325 · cloudnative-pg/charts — Unable to deploy helm chart using ArgoCD. Getting following error Failed sync attempt to : one or more objects failed to apply, reason: CustomResourceDefinition.apiextensions.k8s.io \u0026#34;poolers.postgr...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003epoolers.postgresql.cnpg.io CRD metadata.annotations Too long · Issue #325 · cloudnative-pg/charts\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUnable to deploy helm chart using ArgoCD. Getting following error Failed sync attempt to : one or more objects failed to apply, reason: CustomResourceDefinition.apiextensions.k8s.io \u0026#34;poolers.postgr...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve never seen or needed to use a serversideapply in kubernetes before, but I ran into this same issue in my k3s \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e while installing cloudnative-pg.\u003c/p\u003e\n\u003cp\u003eYou can do it with argo\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003eapiVersion\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eargoproj.io/v1alpha1\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003ekind\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"l\"\u003eApplication\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003espec\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003esyncPolicy\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nt\"\u003esyncOptions\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e- \u003cspan class=\"l\"\u003eServerSideApply=true\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eand you can do it with kubectl\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ekubectl apply --server-side --force-conflicts -f cnpg-1.25.0.yaml\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/cloudnative-pg/charts/issues/325\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/42368c5206f375a8cd5aa7b6fd8a9f0832a56704f689e76a81e392bf8e484f6a/cloudnative-pg/charts/issues/325\" alt=\"poolers.postgresql.cnpg.io CRD metadata.annotations Too long · Issue #325 · cloudnative-pg/charts — Unable to deploy helm chart using ArgoCD. Getting following error Failed sync attempt to : one or more objects failed to apply, reason: CustomResourceDefinition.apiextensions.k8s.io \u0026#34;poolers.postgr...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003epoolers.postgresql.cnpg.io CRD metadata.annotations Too long · Issue #325 · cloudnative-pg/charts\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eUnable to deploy helm chart using ArgoCD. Getting following error Failed sync attempt to : one or more objects failed to apply, reason: CustomResourceDefinition.apiextensions.k8s.io \u0026#34;poolers.postgr...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI've never seen or needed to use a serversideapply in kubernetes before, but I ran into this same issue in my k3s homelab while installing cloudnative-pg.\n\n\nYou can do it with argo\n\n``` yaml\napiVersion: argoproj.io/v1alpha1\nkind: Application\nspec:\nsyncPolicy:\nsyncOptions:\n- ServerSideApply=true\n```\n\nand you can do it with kubectl\n\n``` bash\nkubectl apply --server-side --force-conflicts -f cnpg-1.25.0.yaml\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/cloudnative-pg/charts/issues/325",
      "date_published": "2025-01-21T17:06:21Z",
      "date_modified": "2025-01-21T17:06:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "argo",
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/i-fixed-lists-in-my-blog/",
      "url": "https://waylonwalker.com/i-fixed-lists-in-my-blog/",
      "title": "I fixed lists in my blog",
      "content_html": "\u003cp\u003eA small improvement to my blog today. I was checking out my \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 post and\nnoticed that lists have left padding but no discs or numbers.  I popped open my\n\u003ccode\u003etailwind/app.css\u003c/code\u003e added these lines and rebuilt.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e#\u003c/span\u003e\u003cspan class=\"nn\"\u003epost-body\u003c/span\u003e \u003cspan class=\"nt\"\u003eli\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"err\"\u003e@apply\u003c/span\u003e \u003cspan class=\"err\"\u003elist-disc\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e#\u003c/span\u003e\u003cspan class=\"nn\"\u003epost-body\u003c/span\u003e \u003cspan class=\"nt\"\u003eol\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"err\"\u003e@apply\u003c/span\u003e \u003cspan class=\"err\"\u003elist-decimal\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eAnd rebuild, which I actually do with \u003ca href=\"/casey-just/\" class=\"wikilink\" data-title=\"⭐ casey just\" data-description=\"Just starred just by casey. It\u0026#39;s an exciting project with a lot to offer.\" data-date=\"2023-10-22\" data-preview=\"Just starred just by casey. It\u0026#39;s an exciting project with a lot to offer.\"\u003e⭐ casey just\u003c/a\u003e, but showing the\ncommand here for clarity.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003enpx tailwindcss --input tailwind/app.css --output static/app-39.css\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"why-the-applies\"\u003eWHY the applies \u003ca href=\"#why-the-applies\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp class=\"bg-blue-900 border-r-8 border-black rounded-xl max-w-xl p-6 font-bold\"\u003e\u003c/p\u003e\n\u003cp class=\"bg-green-900 border-l-8 border-black rounded-xl max-w-xl p-6 ml-auto mr-0 font-bold\"\u003e\u003c/p\u003e\n\u003cp class=\"bg-blue-900 border-r-8 border-black rounded-xl max-w-xl p-6 font-bold\"\u003e\u003c/p\u003e\n\u003cp class=\"bg-green-900 border-l-8 border-black rounded-xl max-w-xl p-6 ml-auto mr-0 font-bold\"\u003e\u003c/p\u003e\n\u003ch2 id=\"before\"\u003eBefore \u003ca href=\"#before\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5c48f763-5ef6-49b0-9e8f-5167ab046f05.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5c48f763-5ef6-49b0-9e8f-5167ab046f05.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"after\"\u003eAfter \u003ca href=\"#after\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0cf1c5d9-0948-444f-9a6c-387d22b9db43.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0cf1c5d9-0948-444f-9a6c-387d22b9db43.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nA small improvement to my blog today. I was checking out my \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 post and\nnoticed that lists have left padding but no discs or numbers.  I popped open my\n`tailwind/app.css` added these lines and rebuilt.\n\n``` css\n#post-body li {\n  @apply list-disc;\n}\n#post-body ol {\n  @apply list-decimal;\n}\n```\n\nAnd rebuild, which I actually do with \u003ca href=\"/casey-just/\" class=\"wikilink\" data-title=\"⭐ casey just\" data-description=\"Just starred just by casey. It\u0026#39;s an exciting project with a lot to offer.\" data-date=\"2023-10-22\"\u003e⭐ casey just\u003c/a\u003e, but showing the\ncommand here for clarity.\n\n``` bash\nnpx tailwindcss --input tailwind/app.css --output static/app-39.css\n```\n\n## WHY the applies\n\n{.bg-blue-900 .border-r-8 .border-black .rounded-xl .max-w-xl .p-6 .font-bold}\nDude, you know that @apply is an anti-pattern in tailwind right?\n\n{.bg-green-900 .border-l-8 .border-black .rounded-xl .max-w-xl .p-6 .ml-auto .mr-0 .font-bold}\nYa\n\n{.bg-blue-900 .border-r-8 .border-black .rounded-xl .max-w-xl .p-6 .font-bold}\nWTF are you doing? this is all wrong.\n\n{.bg-green-900 .border-l-8 .border-black .rounded-xl .max-w-xl .p-6 .ml-auto .mr-0 .font-bold}\nI use @apply in my blog because the html is generated by a markdown library,\nand changing the html at this low level would be quite difficult, this is easy.\n\n## Before\n\n![image](https://dropper.waylonwalker.com/api/file/5c48f763-5ef6-49b0-9e8f-5167ab046f05.webp)\n\n## After\n\n![image](https://dropper.waylonwalker.com/api/file/0cf1c5d9-0948-444f-9a6c-387d22b9db43.webp)\n",
      "summary": "A small improvement to my blog today. I was checking out my now post and noticed that lists have left padding but no discs or numbers. I popped open my added...",
      "date_published": "2025-01-21T16:08:01Z",
      "date_modified": "2025-01-21T16:08:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/setting-up-nvim-manager-starship-prompt/",
      "url": "https://waylonwalker.com/setting-up-nvim-manager-starship-prompt/",
      "title": "setting up nvim-manager starship prompt",
      "content_html": "\u003cp\u003eI built out a tool for myself to manage my nvim configuration, and I wanted to\nquickly see which one I am running in my starship prompt. Here’s the config I\nended up with.  It warns if the \u003ccode\u003eNVIM_APPNAME\u003c/code\u003e environment variable is not set, and\nit shows which nvim I am using if it is set.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003ecustom\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003envim-manager-system\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003ewhen\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;[[ ! -n \u0026#34;${NVIM_APPNAME}\u0026#34; ]]\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003estyle\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;bold yellow\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esymbol\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;[ ](fg:#15AABF)\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eformat\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;$symbol[USING SYSTEM NVIM]($style)\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003eenv_var\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003estyle\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;green\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003esymbol\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;[ ](fg:#15AABF)\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003eformat\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;[$symbol${env_value}]($style)\u0026#39;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003evariable\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;NVIM_APPNAME\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI built out a tool for myself to manage my nvim configuration, and I wanted to\nquickly see which one I am running in my starship prompt. Here's the config I\nended up with.  It warns if the `NVIM_APPNAME` environment variable is not set, and\nit shows which nvim I am using if it is set.\n\n``` toml\n[custom.nvim-manager-system]\nwhen = '[[ ! -n \"${NVIM_APPNAME}\" ]]'\nstyle = \"bold yellow\"\nsymbol = '[ ](fg:#15AABF)'\nformat = '$symbol[USING SYSTEM NVIM]($style)'\n\n[env_var.NVIM_APPNAME]\nstyle = \"green\"\nsymbol = '[ ](fg:#15AABF)'\nformat = '[$symbol${env_value}]($style)'\nvariable = \"NVIM_APPNAME\"\n```\n",
      "summary": "I built out a tool for myself to manage my nvim configuration, and I wanted to quickly see which one I am running in my starship prompt. Here's the config I...",
      "date_published": "2025-01-21T16:03:46Z",
      "date_modified": "2025-01-21T16:03:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "nvim-manager",
        "starship"
      ]
    },
    {
      "id": "https://waylonwalker.com/moonbeam-nyc-snorlax/",
      "url": "https://waylonwalker.com/moonbeam-nyc-snorlax/",
      "title": "⭐ moonbeam-nyc snorlax",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/moonbeam-nyc/snorlax\" 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\"\u003esnorlax\u003c/a\u003e by \u003ca href=\"https://github.com/moonbeam-nyc\" 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\"\u003emoonbeam-nyc\u003c/a\u003e is a game-changer in its space. Excited to see how it evolves.\u003c/p\u003e\n\u003cp\u003ewake and sleep Kubernetes deployments on a schedule\u003c/p\u003e\n",
      "content_text": "\n[snorlax](https://github.com/moonbeam-nyc/snorlax) by [moonbeam-nyc](https://github.com/moonbeam-nyc) is a game-changer in its space. Excited to see how it evolves.\n\nwake and sleep Kubernetes deployments on a schedule\n",
      "summary": "snorlax by moonbeam-nyc is a game-changer in its space. Excited to see how it evolves.",
      "date_published": "2025-01-21T03:19:48Z",
      "date_modified": "2025-01-21T03:19:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/kubernetes-sigs-headlamp/",
      "url": "https://waylonwalker.com/kubernetes-sigs-headlamp/",
      "title": "⭐ kubernetes-sigs headlamp",
      "content_html": "\u003cp\u003eI came across \u003ca href=\"https://github.com/kubernetes-sigs/headlamp\" 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\"\u003eheadlamp\u003c/a\u003e from \u003ca href=\"https://github.com/kubernetes-sigs\" 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\"\u003ekubernetes-sigs\u003c/a\u003e, and it’s packed with great features and ideas.\u003c/p\u003e\n\u003cp\u003eA Kubernetes web UI that is fully-featured, user-friendly and extensible\u003c/p\u003e\n",
      "content_text": "\nI came across [headlamp](https://github.com/kubernetes-sigs/headlamp) from [kubernetes-sigs](https://github.com/kubernetes-sigs), and it's packed with great features and ideas.\n\nA Kubernetes web UI that is fully-featured, user-friendly and extensible\n",
      "summary": "I came across headlamp from kubernetes-sigs, and it's packed with great features and ideas.",
      "date_published": "2025-01-21T03:13:58Z",
      "date_modified": "2025-01-21T03:13:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/headlamp-k8s-headlamp/",
      "url": "https://waylonwalker.com/headlamp-k8s-headlamp/",
      "title": "⭐ headlamp-k8s headlamp",
      "content_html": "\u003cp\u003eJust starred \u003ca href=\"https://github.com/headlamp-k8s/headlamp\" 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\"\u003eheadlamp\u003c/a\u003e by \u003ca href=\"https://github.com/headlamp-k8s\" 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\"\u003eheadlamp-k8s\u003c/a\u003e. It’s an exciting project with a lot to offer.\u003c/p\u003e\n\u003cp\u003eA Kubernetes web UI that is fully-featured, user-friendly and extensible\u003c/p\u003e\n",
      "content_text": "\nJust starred [headlamp](https://github.com/headlamp-k8s/headlamp) by [headlamp-k8s](https://github.com/headlamp-k8s). It's an exciting project with a lot to offer.\n\nA Kubernetes web UI that is fully-featured, user-friendly and extensible\n",
      "summary": "Just starred headlamp by headlamp-k8s. It's an exciting project with a lot to offer.",
      "date_published": "2025-01-21T03:13:58Z",
      "date_modified": "2025-01-21T03:13:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/gitui-org-gitui/",
      "url": "https://waylonwalker.com/gitui-org-gitui/",
      "title": "⭐ gitui-org gitui",
      "content_html": "\u003cp\u003eIf you’re into interesting projects, don’t miss out on \u003ca href=\"https://github.com/gitui-org/gitui\" 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\"\u003egitui\u003c/a\u003e, created by \u003ca href=\"https://github.com/gitui-org\" 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\"\u003egitui-org\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eBlazing 💥 fast terminal-ui for \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e written in rust 🦀\u003c/p\u003e\n",
      "content_text": "\nIf you're into interesting projects, don't miss out on [gitui](https://github.com/gitui-org/gitui), created by [gitui-org](https://github.com/gitui-org).\n\nBlazing 💥 fast terminal-ui for git written in rust 🦀\n",
      "summary": "If you're into interesting projects, don't miss out on gitui, created by gitui-org.",
      "date_published": "2025-01-21T02:43:48Z",
      "date_modified": "2025-01-21T02:43:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/extrawurst-gitui/",
      "url": "https://waylonwalker.com/extrawurst-gitui/",
      "title": "⭐ extrawurst gitui",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/extrawurst/gitui\" 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\"\u003egitui\u003c/a\u003e by \u003ca href=\"https://github.com/extrawurst\" 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\"\u003eextrawurst\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eBlazing 💥 fast terminal-ui for \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e written in rust 🦀\u003c/p\u003e\n",
      "content_text": "\nThe work on [gitui](https://github.com/extrawurst/gitui) by [extrawurst](https://github.com/extrawurst).\n\nBlazing 💥 fast terminal-ui for git written in rust 🦀\n",
      "summary": "The work on gitui by extrawurst.",
      "date_published": "2025-01-21T02:43:48Z",
      "date_modified": "2025-01-21T02:43:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-537/",
      "url": "https://waylonwalker.com/thought-537/",
      "title": "💭 Nerd Fonts - Iconic font aggregator, glyphs/icons collection, ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.nerdfonts.com/cheat-sheet\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.nerdfonts.com/assets/img/sankey-glyphs-combined-diagram.png\" alt=\"Nerd Fonts - Iconic font aggregator, glyphs/icons collection, \u0026amp; fonts patcher — Iconic font aggregator, collection, \u0026amp; patcher: 9,000+ glyph/icons, 60+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more\" loading=\"lazy\"/ data-glightbox=\"description: Nerd Fonts - Iconic font aggregator, glyphs/icons collection, \u0026amp; fonts patcher — Iconic font aggregator, collection, \u0026amp; patcher: 9,000+ glyph/icons, 60+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNerd Fonts - Iconic font aggregator, glyphs/icons collection, \u0026amp; fonts patcher\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIconic font aggregator, collection, \u0026amp; patcher: 9,000+ glyph/icons, 60+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eNerd Fonts · nerdfonts.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eNerdfont cheatsheet is a fantastic way to copy paste icons into your shell.  I just used it to juice up my starship prompt with my current \u003ccode\u003e$NVIM_APPNAME\u003c/code\u003e managed by \u003ca href=\"/nvim-manager/\" class=\"wikilink\" data-title=\"nvim-manager\" data-description=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\" data-date=\"2025-01-12\" data-preview=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\"\u003envim-manager\u003c/a\u003e\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3635351b-c006-4cff-8011-85c3b14bfc8f.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3635351b-c006-4cff-8011-85c3b14bfc8f.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.nerdfonts.com/cheat-sheet\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.nerdfonts.com/assets/img/sankey-glyphs-combined-diagram.png\" alt=\"Nerd Fonts - Iconic font aggregator, glyphs/icons collection, \u0026amp; fonts patcher — Iconic font aggregator, collection, \u0026amp; patcher: 9,000+ glyph/icons, 60+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eNerd Fonts - Iconic font aggregator, glyphs/icons collection, \u0026amp; fonts patcher\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eIconic font aggregator, collection, \u0026amp; patcher: 9,000+ glyph/icons, 60+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eNerd Fonts \u0026middot; nerdfonts.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNerdfont cheatsheet is a fantastic way to copy paste icons into your shell.  I just used it to juice up my starship prompt with my current `$NVIM_APPNAME` managed by \u003ca href=\"/nvim-manager/\" class=\"wikilink\" data-title=\"nvim-manager\" data-description=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\" data-date=\"2025-01-12\"\u003envim-manager\u003c/a\u003e\n\n![image](https://dropper.waylonwalker.com/api/file/3635351b-c006-4cff-8011-85c3b14bfc8f.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.nerdfonts.com/cheat-sheet",
      "date_published": "2025-01-21T01:04:01Z",
      "date_modified": "2025-01-21T01:04:01Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "font",
        "icons",
        "nerdfont",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/emoji-in-headless-chrome-in-docker/",
      "url": "https://waylonwalker.com/emoji-in-headless-chrome-in-docker/",
      "title": "emoji in headless chrome in docker",
      "content_html": "\u003cp\u003eI recently noticed that my \u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eog\u003c/a\u003e images were missing emoji.  They were taken using\nheadless chrome in a container.  I fixed it by adding an emoji font in the\ncontainerfile / dockerfile.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eRUN\u003c/span\u003e apt-get update \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e apt-get install -y \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"c1\"\u003e# Add fonts with emoji support\u003c/span\u003e\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    fonts-noto-color-emoji \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"o\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e rm -rf /var/lib/apt/lists/*\u003cspan class=\"err\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"before\"\u003eBefore \u003ca href=\"#before\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere’s what they were looking like with broken emoji fonts.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6e9060f2-0e15-4f22-88b6-b6ec5ddb34de.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/6e9060f2-0e15-4f22-88b6-b6ec5ddb34de.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"after\"\u003eAfter \u003ca href=\"#after\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAnd now with the fixed emoji font.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/8ed5e338-50c2-4130-8cce-549ecc802f01.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/8ed5e338-50c2-4130-8cce-549ecc802f01.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI put thought bubbles on my thoughts posts and stars on my github stars posts\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n",
      "content_text": "\nI recently noticed that my og images were missing emoji.  They were taken using\nheadless chrome in a container.  I fixed it by adding an emoji font in the\ncontainerfile / dockerfile.\n\n``` Dockerfile\nRUN apt-get update \u0026\u0026 apt-get install -y \\\n    # Add fonts with emoji support\n    fonts-noto-color-emoji \\\n    \u0026\u0026 rm -rf /var/lib/apt/lists/*\n```\n\n## Before\n\nHere's what they were looking like with broken emoji fonts.\n\n![image](https://dropper.waylonwalker.com/api/file/6e9060f2-0e15-4f22-88b6-b6ec5ddb34de.webp)\n\n## After\n\nAnd now with the fixed emoji font.\n\n![image](https://dropper.waylonwalker.com/api/file/8ed5e338-50c2-4130-8cce-549ecc802f01.webp)\n\n\u003e I put thought bubbles on my thoughts posts and stars on my github stars posts\n",
      "summary": "I recently noticed that my og images were missing emoji. They were taken using headless chrome in a container. I fixed it by adding an emoji font in the...",
      "date_published": "2025-01-20T13:55:37Z",
      "date_modified": "2025-01-20T13:55:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "docker"
      ]
    },
    {
      "id": "https://waylonwalker.com/one2nc-cloudlens/",
      "url": "https://waylonwalker.com/one2nc-cloudlens/",
      "title": "⭐ one2nc cloudlens",
      "content_html": "\u003cp\u003e\u003ca href=\"https://github.com/one2nc\" 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\"\u003eone2nc\u003c/a\u003e has done a fantastic job with \u003ca href=\"https://github.com/one2nc/cloudlens\" 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\"\u003ecloudlens\u003c/a\u003e. Highly recommend taking a look.\u003c/p\u003e\n\u003cp\u003ek9s like CLI for AWS and GCP\u003c/p\u003e\n",
      "content_text": "\n[one2nc](https://github.com/one2nc) has done a fantastic job with [cloudlens](https://github.com/one2nc/cloudlens). Highly recommend taking a look.\n\nk9s like CLI for AWS and GCP\n",
      "summary": "one2nc has done a fantastic job with cloudlens. Highly recommend taking a look.",
      "date_published": "2025-01-20T00:21:58Z",
      "date_modified": "2025-01-20T00:21:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/dlvhdr-gh-dash/",
      "url": "https://waylonwalker.com/dlvhdr-gh-dash/",
      "title": "⭐ dlvhdr gh-dash",
      "content_html": "\u003cp\u003eI like \u003ca href=\"https://github.com/dlvhdr\" 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\"\u003edlvhdr’s\u003c/a\u003e project \u003ca href=\"https://github.com/dlvhdr/gh-dash\" 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\"\u003egh-dash\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eA beautiful CLI dashboard for GitHub 🚀\u003c/p\u003e\n",
      "content_text": "\nI like [dlvhdr's](https://github.com/dlvhdr) project [gh-dash](https://github.com/dlvhdr/gh-dash).\n\nA beautiful CLI dashboard for GitHub 🚀\n",
      "summary": "I like dlvhdr's project gh-dash.",
      "date_published": "2025-01-20T00:21:53Z",
      "date_modified": "2025-01-20T00:21:53Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/doitintl-kube-no-trouble/",
      "url": "https://waylonwalker.com/doitintl-kube-no-trouble/",
      "title": "⭐ doitintl kube-no-trouble",
      "content_html": "\u003cp\u003eI recently discovered \u003ca href=\"https://github.com/doitintl/kube-no-trouble\" 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\"\u003ekube-no-trouble\u003c/a\u003e by \u003ca href=\"https://github.com/doitintl\" 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\"\u003edoitintl\u003c/a\u003e, and it’s truly impressive.\u003c/p\u003e\n\u003cp\u003eEasily check your clusters for use of deprecated APIs\u003c/p\u003e\n",
      "content_text": "\nI recently discovered [kube-no-trouble](https://github.com/doitintl/kube-no-trouble) by [doitintl](https://github.com/doitintl), and it's truly impressive.\n\nEasily check your clusters for use of deprecated APIs\n",
      "summary": "I recently discovered kube-no-trouble by doitintl, and it's truly impressive.",
      "date_published": "2025-01-19T23:10:54Z",
      "date_modified": "2025-01-19T23:10:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-536/",
      "url": "https://waylonwalker.com/thought-536/",
      "title": "💭 Manufacturer Recertified Drives | Enterprise Grade — ServerPar...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://serverpartdeals.com/collections/manufacturer-recertified-drives\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://serverpartdeals.com/cdn/shop/files/SPD_Logo_-_2000x2000_88baf93f-3981-4a53-88bc-df53f34c620e_1200x1200.png?v=1629317788\" alt=\"Manufacturer Recertified Drives | Enterprise Grade — Manufacturer Recertified enterprise drives work and look like new. Rebuilt by the manufacturer and quality tested to ensure they function as new, our recertified drives save on cost. Shop now!\" loading=\"lazy\"/ data-glightbox=\"description: Manufacturer Recertified Drives | Enterprise Grade — Manufacturer Recertified enterprise drives work and look like new. Rebuilt by the manufacturer and quality tested to ensure they function as new, our recertified drives save on cost. Shop now!\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eManufacturer Recertified Drives | Enterprise Grade\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eManufacturer Recertified enterprise drives work and look like new. Rebuilt by the manufacturer and quality tested to ensure they function as new, our recertified drives save on cost. Shop now!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eServerPartDeals.com · serverpartdeals.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFor my next drive upgrade in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e I am gong to be using one of these factory recertified drives from serverpartdeals.com.  Found them on an LTT video awhile back.  They are some lightly used and recertified, fully burnt in drives.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eShop for drives that are certified once again by the manufacturer to work like new. Factory ReCertified drives are cost-effective alternatives compared to factory-sealed new counter parts. Additionally, unlike in mass production, the re-certification process involves closer attention to the overall operation of the hardware so that the re-certification will not have to happen a 2nd time\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://serverpartdeals.com/collections/manufacturer-recertified-drives\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://serverpartdeals.com/cdn/shop/files/SPD_Logo_-_2000x2000_88baf93f-3981-4a53-88bc-df53f34c620e_1200x1200.png?v=1629317788\" alt=\"Manufacturer Recertified Drives | Enterprise Grade — Manufacturer Recertified enterprise drives work and look like new. Rebuilt by the manufacturer and quality tested to ensure they function as new, our recertified drives save on cost. Shop now!\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eManufacturer Recertified Drives | Enterprise Grade\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eManufacturer Recertified enterprise drives work and look like new. Rebuilt by the manufacturer and quality tested to ensure they function as new, our recertified drives save on cost. Shop now!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eServerPartDeals.com \u0026middot; serverpartdeals.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFor my next drive upgrade in my homelab I am gong to be using one of these factory recertified drives from serverpartdeals.com.  Found them on an LTT video awhile back.  They are some lightly used and recertified, fully burnt in drives.\n\n\u003e Shop for drives that are certified once again by the manufacturer to work like new. Factory ReCertified drives are cost-effective alternatives compared to factory-sealed new counter parts. Additionally, unlike in mass production, the re-certification process involves closer attention to the overall operation of the hardware so that the re-certification will not have to happen a 2nd time\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://serverpartdeals.com/collections/manufacturer-recertified-drives",
      "date_published": "2025-01-19T19:11:47Z",
      "date_modified": "2025-01-19T19:11:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-535/",
      "url": "https://waylonwalker.com/thought-535/",
      "title": "💭 Releases · bootandy/dust",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/bootandy/dust?tab=readme-ov-file\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/fc5bbe9497a0dea0c7099cbd9db1ec29af7044b435c75cf7ec8796344ead0463/bootandy/dust\" alt=\"GitHub - bootandy/dust: A more intuitive version of du in rust — A more intuitive version of du in rust. Contribute to bootandy/dust development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - bootandy/dust: A more intuitive version of du in rust — A more intuitive version of du in rust. Contribute to bootandy/dust development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - bootandy/dust: A more intuitive version of du in rust\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA more intuitive version of du in rust. Contribute to bootandy/dust development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003edust is one of my favorite rust rewrite tools.  Its so useful for narrowing down file system bloat and cleaning up some disk space on your nearly full disks.  It runs right in your terminal and gives you a nice bar graph on the top directories in use.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/31b206fd-d508-451e-ba96-860c5d8110d1.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/31b206fd-d508-451e-ba96-860c5d8110d1.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/bootandy/dust?tab=readme-ov-file\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/fc5bbe9497a0dea0c7099cbd9db1ec29af7044b435c75cf7ec8796344ead0463/bootandy/dust\" alt=\"GitHub - bootandy/dust: A more intuitive version of du in rust — A more intuitive version of du in rust. Contribute to bootandy/dust development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - bootandy/dust: A more intuitive version of du in rust\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA more intuitive version of du in rust. Contribute to bootandy/dust development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ndust is one of my favorite rust rewrite tools.  Its so useful for narrowing down file system bloat and cleaning up some disk space on your nearly full disks.  It runs right in your terminal and gives you a nice bar graph on the top directories in use.\n\n\n![image](https://dropper.waylonwalker.com/api/file/31b206fd-d508-451e-ba96-860c5d8110d1.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/bootandy/dust?tab=readme-ov-file",
      "date_published": "2025-01-19T18:58:42Z",
      "date_modified": "2025-01-19T18:58:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/bootandy-dust/",
      "url": "https://waylonwalker.com/bootandy-dust/",
      "title": "⭐ bootandy dust",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/bootandy/dust\" 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\"\u003edust\u003c/a\u003e by \u003ca href=\"https://github.com/bootandy\" 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\"\u003ebootandy\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eA more intuitive version of du in rust\u003c/p\u003e\n",
      "content_text": "\nCheck out [dust](https://github.com/bootandy/dust) by [bootandy](https://github.com/bootandy). It's a well-crafted project with great potential.\n\nA more intuitive version of du in rust\n",
      "summary": "Check out dust by bootandy. It's a well-crafted project with great potential.",
      "date_published": "2025-01-19T18:56:38Z",
      "date_modified": "2025-01-19T18:56:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-534/",
      "url": "https://waylonwalker.com/thought-534/",
      "title": "💭 Keycloak",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.keycloak.org/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://www.keycloak.org/preview/index.png\" alt=\"Keycloak — Keycloak - the open source identity and access management solution. Add single-sign-on and authentication to applications and secure services with minimum effort.\" loading=\"lazy\"/ data-glightbox=\"description: Keycloak — Keycloak - the open source identity and access management solution. Add single-sign-on and authentication to applications and secure services with minimum effort.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKeycloak\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKeycloak - the open source identity and access management solution. Add single-sign-on and authentication to applications and secure services with minimum effort.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eKeycloak · keycloak.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eKeycloak looks like an interesting way to setup sso.  It’s part of the cncf so it’s got a good backing.  I want something better for argo workflows and this might be it.  I’m curious what else I can tie into it.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://www.keycloak.org/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://www.keycloak.org/preview/index.png\" alt=\"Keycloak — Keycloak - the open source identity and access management solution. Add single-sign-on and authentication to applications and secure services with minimum effort.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eKeycloak\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eKeycloak - the open source identity and access management solution. Add single-sign-on and authentication to applications and secure services with minimum effort.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eKeycloak \u0026middot; keycloak.org\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nKeycloak looks like an interesting way to setup sso.  It's part of the cncf so it's got a good backing.  I want something better for argo workflows and this might be it.  I'm curious what else I can tie into it.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.keycloak.org/",
      "date_published": "2025-01-19T05:34:32Z",
      "date_modified": "2025-01-19T05:34:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "auth",
        "containers",
        "kubernetes",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/nvim-mini-mini-ai/",
      "url": "https://waylonwalker.com/nvim-mini-mini-ai/",
      "title": "⭐ nvim-mini mini.ai",
      "content_html": "\u003cp\u003eI’m impressed by \u003ca href=\"https://github.com/nvim-mini/mini.ai\" 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\"\u003emini.ai\u003c/a\u003e from \u003ca href=\"https://github.com/nvim-mini\" 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\"\u003envim-mini\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNeovim Lua plugin to extend and create \u003ccode\u003ea\u003c/code\u003e/\u003ccode\u003ei\u003c/code\u003e textobjects. Part of ‘mini.nvim’ library.\u003c/p\u003e\n",
      "content_text": "\nI'm impressed by [mini.ai](https://github.com/nvim-mini/mini.ai) from [nvim-mini](https://github.com/nvim-mini).\n\nNeovim Lua plugin to extend and create `a`/`i` textobjects. Part of 'mini.nvim' library.\n",
      "summary": "I'm impressed by mini.ai from nvim-mini.",
      "date_published": "2025-01-18T17:08:45Z",
      "date_modified": "2025-01-18T17:08:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/echasnovski-mini-ai/",
      "url": "https://waylonwalker.com/echasnovski-mini-ai/",
      "title": "⭐ echasnovski mini.ai",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/echasnovski\" 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\"\u003eechasnovski\u003c/a\u003e and their project \u003ca href=\"https://github.com/echasnovski/mini.ai\" 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\"\u003emini.ai\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNeovim Lua plugin to extend and create \u003ccode\u003ea\u003c/code\u003e/\u003ccode\u003ei\u003c/code\u003e textobjects. Part of ‘mini.nvim’ library.\u003c/p\u003e\n",
      "content_text": "\nCheck out [echasnovski](https://github.com/echasnovski) and their project [mini.ai](https://github.com/echasnovski/mini.ai).\n\nNeovim Lua plugin to extend and create `a`/`i` textobjects. Part of 'mini.nvim' library.\n",
      "summary": "Check out echasnovski and their project mini.ai.",
      "date_published": "2025-01-18T17:08:45Z",
      "date_modified": "2025-01-18T17:08:45Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-533/",
      "url": "https://waylonwalker.com/thought-533/",
      "title": "💭 The Worst Thing You Can Do For Your Career - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"CVG6f1N0VT8\" title=\"The Worst Thing You Can Do For Your Career\" playlabel=\"Play: The Worst Thing You Can Do For Your Career\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eDon’t stop learning!  Stop trying because you have a doomer outlook on ai, llms, industry and think they are taking over.  If you have no hope for the future, if you stop now you are cementing in that you will be no good and the ai will be better.  Many, maybe most of us in this industry go here by hard work, long nights of learning, trying to solve problems that our job had.  If llms  take over then the world is going to be a whole lot different, it will be a world you cannot predict or plan for.  For now put your head down and succeed in the world we have today.\u003c/p\u003e\n\u003cp\u003eTEEJ has some great thoughts on this whole sentiment, put this on for you morning walk or whatever you do.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"CVG6f1N0VT8\" title=\"The Worst Thing You Can Do For Your Career\" playlabel=\"Play: The Worst Thing You Can Do For Your Career\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nDon't stop learning!  Stop trying because you have a doomer outlook on ai, llms, industry and think they are taking over.  If you have no hope for the future, if you stop now you are cementing in that you will be no good and the ai will be better.  Many, maybe most of us in this industry go here by hard work, long nights of learning, trying to solve problems that our job had.  If llms  take over then the world is going to be a whole lot different, it will be a world you cannot predict or plan for.  For now put your head down and succeed in the world we have today.\n\nTEEJ has some great thoughts on this whole sentiment, put this on for you morning walk or whatever you do.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=CVG6f1N0VT8",
      "date_published": "2025-01-17T14:54:14Z",
      "date_modified": "2025-01-17T14:54:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "catalytic",
        "dev",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/swark-io-swark/",
      "url": "https://waylonwalker.com/swark-io-swark/",
      "title": "⭐ swark-io swark",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/swark-io/swark\" 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\"\u003eswark\u003c/a\u003e by \u003ca href=\"https://github.com/swark-io\" 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\"\u003eswark-io\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eCreate architecture diagrams from code automatically using large language models (LLMs).\u003c/p\u003e\n",
      "content_text": "\nThe work on [swark](https://github.com/swark-io/swark) by [swark-io](https://github.com/swark-io).\n\nCreate architecture diagrams from code automatically using large language models (LLMs).\n",
      "summary": "The work on swark by swark-io.",
      "date_published": "2025-01-17T03:20:26Z",
      "date_modified": "2025-01-17T03:20:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/a-night-of-rounds/",
      "url": "https://waylonwalker.com/a-night-of-rounds/",
      "title": "a night of rounds",
      "content_html": "\u003cp\u003eTonight my son and I played rounds, I pulled clips of all the final rounds of\neach set of rounds.  We play hardly any games with guns in them, this is one of\nthe few exceptions, it feels quite whimsical, fun, and strategic, and not at\nall realistic or first person.  The strategy part really brings me back to the\nfps games I would play with friends in my teens.\u003c/p\u003e\n\u003ch2 id=\"round-1---orange\"\u003eRound 1 - Orange \u003ca href=\"#round-1---orange\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI thought I had him on this one.  I had this rare power up that allows me to\nshot through walls.  It came down to the very last round and he had too much\nfirepowerfor me.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/5863caea-da25-45e1-9a4d-111c6e4408a3.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"round-2---blue\"\u003eRound 2 - Blue \u003ca href=\"#round-2---blue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe final round of round 2 was Super fast.  I felt like I nerfed my homing\npower up by adding fastball to it and it didn’t really home in anymore.  What\nmade it so quick, I think he had glass cannon and I laid down two well placed\nshots.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/453553d6-802d-4b76-acb1-40300922b655.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"round-3---orange\"\u003eRound 3 - Orange \u003ca href=\"#round-3---orange\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRound three he got some really good cards, but too much firepower and stacking\nbouncy and ricochet made it too much to control and he friendly fired both\nrounds.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/1ad4422e-1172-4218-bf1c-7bb0fa69f809.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"round-4---blue\"\u003eRound 4 - Blue \u003ca href=\"#round-4---blue\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRound 4 I stacked up radiance and saw and just went for it.  Radiance emits the\npower of the sun while reloading, so I went in guns blazin, pulled the shield\nfor saw and ran at him.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/dc5be9d9-b365-467e-9761-ab2767d85621.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"round-5\"\u003eRound 5 \u003ca href=\"#round-5\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eRound 5 I stacked up a multi shot, Big bullet, and timed explosion.  I didn’t\nlet off the firepower and there was no chance.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/72c6394e-77c6-4f83-9f06-c81b339277c5.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n",
      "content_text": "\nTonight my son and I played rounds, I pulled clips of all the final rounds of\neach set of rounds.  We play hardly any games with guns in them, this is one of\nthe few exceptions, it feels quite whimsical, fun, and strategic, and not at\nall realistic or first person.  The strategy part really brings me back to the\nfps games I would play with friends in my teens.\n\n## Round 1 - Orange\n\nI thought I had him on this one.  I had this rare power up that allows me to\nshot through walls.  It came down to the very last round and he had too much\nfirepowerfor me.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/5863caea-da25-45e1-9a4d-111c6e4408a3.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Round 2 - Blue\n\nThe final round of round 2 was Super fast.  I felt like I nerfed my homing\npower up by adding fastball to it and it didn't really home in anymore.  What\nmade it so quick, I think he had glass cannon and I laid down two well placed\nshots.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/453553d6-802d-4b76-acb1-40300922b655.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Round 3 - Orange\n\nRound three he got some really good cards, but too much firepower and stacking\nbouncy and ricochet made it too much to control and he friendly fired both\nrounds.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/1ad4422e-1172-4218-bf1c-7bb0fa69f809.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Round 4 - Blue\n\nRound 4 I stacked up radiance and saw and just went for it.  Radiance emits the\npower of the sun while reloading, so I went in guns blazin, pulled the shield\nfor saw and ran at him.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/dc5be9d9-b365-467e-9761-ab2767d85621.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Round 5\n\nRound 5 I stacked up a multi shot, Big bullet, and timed explosion.  I didn't\nlet off the firepower and there was no chance.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/72c6394e-77c6-4f83-9f06-c81b339277c5.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n",
      "summary": "Tonight my son and I played rounds, I pulled clips of all the final rounds of each set of rounds. We play hardly any games with guns in them, this is one of...",
      "date_published": "2025-01-16T21:11:56Z",
      "date_modified": "2025-01-16T21:11:56Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming"
      ]
    },
    {
      "id": "https://waylonwalker.com/wondercraft-session-one/",
      "url": "https://waylonwalker.com/wondercraft-session-one/",
      "title": "wondercraft session one",
      "content_html": "\u003cp\u003eMy son and I are starting a new Minecraft server today called wondercraft.\u003c/p\u003e\n\u003ch2 id=\"setup\"\u003esetup \u003ca href=\"#setup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe are running a few mods on this server notably FTB Ultimine for less grindy\nresource gathering, Sodium for shaders, and Universal Shops.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/730b4480-6356-4ad6-aecc-4b4661603ee6.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/730b4480-6356-4ad6-aecc-4b4661603ee6.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eWe are runninng on Minecraft 1.20.1, I \u003cem\u003ethink\u003c/em\u003e this is because it was the\nlatest supported by Universal Shops, its at least one major release old at this\npoint.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/66550abc-060c-47b2-830f-be7355ad7120.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/66550abc-060c-47b2-830f-be7355ad7120.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI grabbed a few shaders, the ones that you see in this post are rethinking\nvoxels.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3d6ab456-64dd-4760-a27e-02c2326ea36b.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3d6ab456-64dd-4760-a27e-02c2326ea36b.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"spawn\"\u003espawn \u003ca href=\"#spawn\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe initially spawned in a plains biome near an acacia and forest biome.  We\nended up going straight for the forest, only coming back for some sheep and\nwheat seeds.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2cb49488-0e5f-44f4-b89e-dc5eaa8bf077.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2cb49488-0e5f-44f4-b89e-dc5eaa8bf077.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"night-one-zombie-fight\"\u003eNight one Zombie fight \u003ca href=\"#night-one-zombie-fight\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eOn the first night we had the obligitory zombie fight before getting beds and bases set.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/28b09b9c-6dd9-4437-9330-bf0e52401b6d.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/28b09b9c-6dd9-4437-9330-bf0e52401b6d.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"salmon-wrangler\"\u003eSalmon Wrangler \u003ca href=\"#salmon-wrangler\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI was the designated food provider.  I setup a small wheat farm with about 64\nseeds, then went out to hunt down some salmon for the immediate food need.  I\nended up with about a stack of salmon at the end of the session.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/387ae50c-3048-4ee6-be93-beaf9369efaa.webp\" class=\"glightbox-link\" aria-label=\"387ae50c-3048-4ee6-be93-beaf9369efaa.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/387ae50c-3048-4ee6-be93-beaf9369efaa.webp\" alt=\"387ae50c-3048-4ee6-be93-beaf9369efaa.webp\"/ data-glightbox=\"description: 387ae50c-3048-4ee6-be93-beaf9369efaa.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"setting-up-shop\"\u003eSetting up Shop \u003ca href=\"#setting-up-shop\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSo as mentioned above we are running a mod for shops called universal shops.\nThis mod is new to me and my son wanted to run it inspired by watching\nhermitcraft.  We both decided that diamonds were the goal currency, but we\nwanted to set up some shops early so we settled on Oak logs as the currency.\nMy job was to setup food based shops while he set up ore based shops.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7e585608-db41-436f-8daa-77399cb78e20.webp\" class=\"glightbox-link\" aria-label=\"7e585608-db41-436f-8daa-77399cb78e20.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/7e585608-db41-436f-8daa-77399cb78e20.webp\" alt=\"7e585608-db41-436f-8daa-77399cb78e20.webp\"/ data-glightbox=\"description: 7e585608-db41-436f-8daa-77399cb78e20.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eMy earnings after the first day.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp\" class=\"glightbox-link\" aria-label=\"3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp\" alt=\"3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp\"/ data-glightbox=\"description: 3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"first-death\"\u003eFirst Death \u003ca href=\"#first-death\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI forgot that I turned my sound off for a call, got lost on the chase of the\nsalmon and did not leave myself enough time to get to the top.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/f112d27a-3a77-4e8f-8bf7-8ff981b6355b.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"second-death\"\u003eSecond Death \u003ca href=\"#second-death\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003ePlaying sloppy again I was walking around at night with only three hearts left.\nMy son wanted me to check out his shop that he just built out and I got hit by\na skelly on the way up, after the first hit I was sitting at 1 heart with no\nwhere to go.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/ab088aa3-2661-4551-9040-1fad928ec450.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"third-death\"\u003eThird Death \u003ca href=\"#third-death\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis one is just plain embarrasing, I was lost in the flow of hunting salmon\nagain, not paying any attention.  I came up for air, but didn’t even gie time\nfor more than a couple bubbles to come back before diving back in and died\nalmost instantly.\u003c/p\u003e\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource src=\"https://dropper.waylonwalker.com/api/file/f36b068d-0094-4d24-8b19-314ee23d71b1.mp4\" type=\"video/mp4\"/\u003e\n     Sorry, your browser doesn\u0026#39;t support embedded videos.\n\u003c/video\u003e\n\u003ch2 id=\"note-to-self\"\u003eNote to self \u003ca href=\"#note-to-self\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNext time run Minecraft in full screen so you don’t dox your start menu.\u003c/p\u003e\n",
      "content_text": "\nMy son and I are starting a new Minecraft server today called wondercraft.\n\n## setup\n\nWe are running a few mods on this server notably FTB Ultimine for less grindy\nresource gathering, Sodium for shaders, and Universal Shops.\n\n![image](https://dropper.waylonwalker.com/api/file/730b4480-6356-4ad6-aecc-4b4661603ee6.webp)\n\nWe are runninng on Minecraft 1.20.1, I _think_ this is because it was the\nlatest supported by Universal Shops, its at least one major release old at this\npoint.\n\n![image](https://dropper.waylonwalker.com/api/file/66550abc-060c-47b2-830f-be7355ad7120.webp)\n\nI grabbed a few shaders, the ones that you see in this post are rethinking\nvoxels.\n\n![image](https://dropper.waylonwalker.com/api/file/3d6ab456-64dd-4760-a27e-02c2326ea36b.webp)\n\n## spawn\n\nWe initially spawned in a plains biome near an acacia and forest biome.  We\nended up going straight for the forest, only coming back for some sheep and\nwheat seeds.\n\n![image](https://dropper.waylonwalker.com/api/file/2cb49488-0e5f-44f4-b89e-dc5eaa8bf077.webp)\n\n## Night one Zombie fight\n\nOn the first night we had the obligitory zombie fight before getting beds and bases set.\n\n![image](https://dropper.waylonwalker.com/api/file/28b09b9c-6dd9-4437-9330-bf0e52401b6d.webp)\n\n## Salmon Wrangler\n\nI was the designated food provider.  I setup a small wheat farm with about 64\nseeds, then went out to hunt down some salmon for the immediate food need.  I\nended up with about a stack of salmon at the end of the session.\n\n![387ae50c-3048-4ee6-be93-beaf9369efaa.webp](https://dropper.waylonwalker.com/api/file/387ae50c-3048-4ee6-be93-beaf9369efaa.webp)\n\n## Setting up Shop\n\nSo as mentioned above we are running a mod for shops called universal shops.\nThis mod is new to me and my son wanted to run it inspired by watching\nhermitcraft.  We both decided that diamonds were the goal currency, but we\nwanted to set up some shops early so we settled on Oak logs as the currency.\nMy job was to setup food based shops while he set up ore based shops.\n\n![7e585608-db41-436f-8daa-77399cb78e20.webp](https://dropper.waylonwalker.com/api/file/7e585608-db41-436f-8daa-77399cb78e20.webp)\n\nMy earnings after the first day.\n\n![3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp](https://dropper.waylonwalker.com/api/file/3e930e2f-d2c5-4308-9c3c-5308e7ae6f54.webp)\n\n## First Death\n\nI forgot that I turned my sound off for a call, got lost on the chase of the\nsalmon and did not leave myself enough time to get to the top.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/f112d27a-3a77-4e8f-8bf7-8ff981b6355b.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Second Death\n\nPlaying sloppy again I was walking around at night with only three hearts left.\nMy son wanted me to check out his shop that he just built out and I got hit by\na skelly on the way up, after the first hit I was sitting at 1 heart with no\nwhere to go.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/ab088aa3-2661-4551-9040-1fad928ec450.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Third Death\n\nThis one is just plain embarrasing, I was lost in the flow of hunting salmon\nagain, not paying any attention.  I came up for air, but didn't even gie time\nfor more than a couple bubbles to come back before diving back in and died\nalmost instantly.\n\n\u003cvideo autoplay=\"\" controls=\"\" loop=\"true\" muted=\"\" playsinline=\"\" width=\"100%\" class=\"rounded-xl border-pink-900 border-2\"\u003e\n     \u003csource\n      src=\"https://dropper.waylonwalker.com/api/file/f36b068d-0094-4d24-8b19-314ee23d71b1.mp4\"\n      type=\"video/mp4\"\u003e\n     Sorry, your browser doesn't support embedded videos.\n\u003c/video\u003e\n\n## Note to self\n\nNext time run Minecraft in full screen so you don't dox your start menu.\n",
      "summary": "My son and I are starting a new Minecraft server today called wondercraft.",
      "date_published": "2025-01-13T15:06:46Z",
      "date_modified": "2025-01-13T15:06:46Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "minecraft",
        "wondercraft"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-532/",
      "url": "https://waylonwalker.com/thought-532/",
      "title": "💭 The Future of HTMX - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"0rtpsJSLb44\" title=\"The Future of \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003eHTMX\u003c/a\u003e\" playlabel=\"Play: The Future of HTMX\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eI like the charts that Theo brings to to these videos.  Shout out for a positive k8s reference and not shitting on it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/6b2d4ec0-98f2-4e58-8ab4-936b7356e7f4.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/6b2d4ec0-98f2-4e58-8ab4-936b7356e7f4.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eHtmx brings \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e/css just a bit further down the complexity graph with little to no extra effort, while react allows us to go all the way full complexity at the cost of build and dev complexity to go from zero to 100 as soon as its introduced.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/71ac480a-4e45-4777-87eb-a9d2d8775cca.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/71ac480a-4e45-4777-87eb-a9d2d8775cca.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003ehtmx brings us back to the ease of jquery ajax without any complex swapping or json parsing, all of the object parsing and html templating is done in the backend, the front end just tracks where to put it.  HTMX couples the frontend and backend much tigher, since all of the front end html is generated in the backend, done correctly it is not possible for the front end to get out of sync and try to do things that the back end does not know how to handle, vice versa.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/aa09051d-7e36-43a3-b6da-a6257cad1cc9.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/aa09051d-7e36-43a3-b6da-a6257cad1cc9.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"0rtpsJSLb44\" title=\"The Future of HTMX\" playlabel=\"Play: The Future of HTMX\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nI like the charts that Theo brings to to these videos.  Shout out for a positive k8s reference and not shitting on it.\n\n![image](https://dropper.waylonwalker.com/api/file/6b2d4ec0-98f2-4e58-8ab4-936b7356e7f4.webp)\n\nHtmx brings html/css just a bit further down the complexity graph with little to no extra effort, while react allows us to go all the way full complexity at the cost of build and dev complexity to go from zero to 100 as soon as its introduced.\n\n![image](https://dropper.waylonwalker.com/api/file/71ac480a-4e45-4777-87eb-a9d2d8775cca.webp)\n\nhtmx brings us back to the ease of jquery ajax without any complex swapping or json parsing, all of the object parsing and html templating is done in the backend, the front end just tracks where to put it.  HTMX couples the frontend and backend much tigher, since all of the front end html is generated in the backend, done correctly it is not possible for the front end to get out of sync and try to do things that the back end does not know how to handle, vice versa.\n\n![image](https://dropper.waylonwalker.com/api/file/aa09051d-7e36-43a3-b6da-a6257cad1cc9.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=0rtpsJSLb44\u0026t=624s",
      "date_published": "2025-01-13T02:45:27Z",
      "date_modified": "2025-01-13T02:45:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-531/",
      "url": "https://waylonwalker.com/thought-531/",
      "title": "💭 Why I Write",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://brittanyellich.com/why-i-write/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://brittanyellich.com/_astro/typewriter.LhfVZpCN_Z1bzYMR.jpg\" alt=\"Why I Write — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.\" loading=\"lazy\"/ data-glightbox=\"description: Why I Write — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhy I Write\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStaff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted po...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBrittany Ellich · brittanyellich.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIt’s interesting how many people in tech maintain a blog.  I think part of this brings us back to web 1.0 days when so many individual websites owned the web it was a free for all unindexed land and you got to own a small piece of it.\u003c/p\u003e\n\u003cp\u003eI agree with most of Brittany’s points here I write a lot to keep my skills sharp, and to refer back to.  Brittany mentions keeping all her old posts, even the cringy ones.  I’m all with you here, I’m just wodering how you look back at anything you wrote in the past and not get a bit of that feel, maybe its just me, but I see cringe and mistakes gallore, but it all makes me better moving forward.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://brittanyellich.com/why-i-write/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://brittanyellich.com/_astro/typewriter.LhfVZpCN_Z1bzYMR.jpg\" alt=\"Why I Write — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eWhy I Write\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStaff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted po...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBrittany Ellich \u0026middot; brittanyellich.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIt's interesting how many people in tech maintain a blog.  I think part of this brings us back to web 1.0 days when so many individual websites owned the web it was a free for all unindexed land and you got to own a small piece of it.\n\nI agree with most of Brittany's points here I write a lot to keep my skills sharp, and to refer back to.  Brittany mentions keeping all her old posts, even the cringy ones.  I'm all with you here, I'm just wodering how you look back at anything you wrote in the past and not get a bit of that feel, maybe its just me, but I see cringe and mistakes gallore, but it all makes me better moving forward.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://brittanyellich.com/why-i-write/",
      "date_published": "2025-01-13T02:28:21Z",
      "date_modified": "2025-01-13T02:28:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-530/",
      "url": "https://waylonwalker.com/thought-530/",
      "title": "💭 Availability",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://brittanyellich.com/note/availability/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://brittanyellich.com/_astro/ProfilePicSquare.7t78KdLr_Z18Hm6X.jpg\" alt=\"Availability — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.\" loading=\"lazy\"/ data-glightbox=\"description: Availability — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAvailability\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStaff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted po...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBrittany Ellich · brittanyellich.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003enice overview of availability measurements and what they really mean.  The crazy world we live in today depends on so many things runnig, its also so hard to measure your uptime, The uptime metrics can mean a lot of different things.  The site is up and accepting traffic, but can users make changes or submit orders, there is a lot more to it than just up or down.  I really appreciate Brittany’s story from Nike nested in there.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://brittanyellich.com/note/availability/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://brittanyellich.com/_astro/ProfilePicSquare.7t78KdLr_Z18Hm6X.jpg\" alt=\"Availability — Staff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted podcast.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAvailability\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStaff Software Engineer at GitHub specializing in developer productivity, AI-assisted development, and accessibility. Creator of The Balanced Engineer newsletter and co-host of the Overcommitted po...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBrittany Ellich \u0026middot; brittanyellich.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nnice overview of availability measurements and what they really mean.  The crazy world we live in today depends on so many things runnig, its also so hard to measure your uptime, The uptime metrics can mean a lot of different things.  The site is up and accepting traffic, but can users make changes or submit orders, there is a lot more to it than just up or down.  I really appreciate Brittany's story from Nike nested in there.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://brittanyellich.com/note/availability/",
      "date_published": "2025-01-13T02:20:16Z",
      "date_modified": "2025-01-13T02:20:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-529/",
      "url": "https://waylonwalker.com/thought-529/",
      "title": "💭 SuperMini nRF52840 Wireless Controller Development Board - kri...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://kriscables.com/supermini-nrf52840/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://kriscables.com/wp-content/uploads/2019/11/cropped-500x250.png\" alt=\"nRF52840 Wireless Controller Development Board - kriscables — SuperMini nRF52840 Wireless Controller Development Board\" loading=\"lazy\"/ data-glightbox=\"description: nRF52840 Wireless Controller Development Board - kriscables — SuperMini nRF52840 Wireless Controller Development Board\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003enRF52840 Wireless Controller Development Board - kriscables\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSuperMini nRF52840 Wireless Controller Development Board\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekriscables - Custom Ergo Keyboards and Cables · kriscables.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThe SuperMini nrf52840 is a sick controller for building keyboards, affordable, easy to get, and compact.  Bluetooth and wired setup just works in zmk.  This page has a nice image of the pinout.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://kriscables.com/supermini-nrf52840/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://kriscables.com/wp-content/uploads/2019/11/cropped-500x250.png\" alt=\"nRF52840 Wireless Controller Development Board - kriscables — SuperMini nRF52840 Wireless Controller Development Board\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003enRF52840 Wireless Controller Development Board - kriscables\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eSuperMini nRF52840 Wireless Controller Development Board\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekriscables - Custom Ergo Keyboards and Cables \u0026middot; kriscables.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe SuperMini nrf52840 is a sick controller for building keyboards, affordable, easy to get, and compact.  Bluetooth and wired setup just works in zmk.  This page has a nice image of the pinout.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://kriscables.com/supermini-nrf52840/",
      "date_published": "2025-01-13T01:51:24Z",
      "date_modified": "2025-01-13T01:51:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keyboard",
        "microcontroller",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/nvim-manager/",
      "url": "https://waylonwalker.com/nvim-manager/",
      "title": "nvim-manager",
      "content_html": "\u003cp\u003eI recently built a cli application as a nearly-one-shot-app called\n\u003ca href=\"https://github.com/waylonwalker/nvim-manager\" 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\"\u003envim-manager\u003c/a\u003e. It manages your\nnvim dotfiles install.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://dropper.waylonwalker.com/api/file/20f800f1-64a6-43a3-93eb-e805b07d86b1.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T21-21-40-707Z.png\"\u003e\u003cimg src=\"https://dropper.waylonwalker.com/api/file/20f800f1-64a6-43a3-93eb-e805b07d86b1.png\" alt=\"screenshot-2025-01-31T21-21-40-707Z.png\" class=\"more-cinematic glightbox\"/ data-glightbox=\"description: screenshot-2025-01-31T21-21-40-707Z.png\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"why\"\u003eWhy \u003ca href=\"#why\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp class=\"chat-left\"\u003e\u003c/p\u003e\n\u003cp class=\"chat-right\"\u003e\u003c/p\u003e\n\u003cp class=\"chat-left\"\u003e\u003c/p\u003e\n\u003cp class=\"chat-right\"\u003e\u003c/p\u003e\n\u003ch2 id=\"how-is-nvim-manager-any-better\"\u003eHow is nvim manager any better \u003ca href=\"#how-is-nvim-manager-any-better\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003envim-manager allows you to install pinned versions of your dotfiles, your\nfriends dotfiles, and distros in ~/.config.  This allows you to have stable\nversions that will not break installed while you change things.\u003c/p\u003e\n\u003cp\u003eI’m sure most of us have experienced the pain of installing one plugin, only to\nupdate all of your plugins and break something.\u003c/p\u003e\n\u003cp\u003eOr, you have small changes on every machine you use, because they are all just\na bit different and now you have big merge conflicts to deal with.\u003c/p\u003e\n\u003cp\u003eAll of this aside you can install a distro to get you by, or a known working\nversion of your own dotfiles.\u003c/p\u003e\n\u003ch2 id=\"so-all-these-versions-in-config\"\u003eSo all these versions in ~/.config \u003ca href=\"#so-all-these-versions-in-config\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eya, thats the magic of \u003ccode\u003eNVIM_APPNAME\u003c/code\u003e, I can boot up any of these intalled\nworking versions in an instant with \u003ccode\u003eNVIM_APPNAME=nvim-waylonwalker-v0.0.1 nvim\u003c/code\u003e.  I can still cowboy up and break my main install, but as long as I am\ndiligent to keep these installs untouched I will always have a version to fall\nback to in that moment of need.\u003c/p\u003e\n\u003ch2 id=\"so-what-do-i-need-to-do\"\u003eSo what do I need to do? \u003ca href=\"#so-what-do-i-need-to-do\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003estart tagging your dotfiles as you hit stable versions\u003c/li\u003e\n\u003cli\u003eInstall \u003ccode\u003ecurl https://i.jpillora.com/waylonwalker/nvim-manager | bash\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd some env variables to your shell startup (~/.bashrc or ~/.zshrc for example)\u003c/li\u003e\n\u003cli\u003eInstall that pinned version of your dotfiles \u003ccode\u003envim-manager install v0.0.1\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eInstall a distro \u003ccode\u003envim-manager install --distro astronvim\u003c/code\u003e\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eHere are those environment variables I was talking about, set them to use your\ndotfiles repo, name it what you like, and set your NVIM_APPNAME if you want to\ndefault to a stable \u003ccode\u003envim\u003c/code\u003e and force yourself to \u003ccode\u003eunset NVIM_APPNAME\u003c/code\u003e to live\non the edge.\u003c/p\u003e\n\u003ch2 id=\"install-nvim-manager\"\u003eInstall nvim-manager \u003ca href=\"#install-nvim-manager\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install curl git unzip\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://i.jpillora.com/MordechaiHadad/bob \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebob install nightly\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebob use nightly\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -s ~/.local/share/bob/nvim-bin/nvim ~/.local/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://i.jpillora.com/waylonwalker/nvim-manager \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"install-your-own-dotfiles\"\u003eInstall your own dotfiles \u003ca href=\"#install-your-own-dotfiles\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSetup with the following environment variables.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# nvim-manager\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_MANAGER_REPO\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ehttps://github.com/WaylonWalker/devtainer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_CONFIG_PATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003envim/.config/nvim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_MANAGER_INSTALL_DIR\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$HOME\u003c/span\u003e/.config\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_MANAGER_PREFIX\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;nvim-waylonwalker\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eNVIM_MANAGER_PREFIX\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e-v0.0.1\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install v0.0.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cblockquote\u003e\n\u003cp\u003eNote I like installer by jpillora, I \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself host\u003c/a\u003e it for my own security, but\nfeel free to download from GH if it makes you feel safer.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"ubuntu-container-speedrun\"\u003eUbuntu Container Speedrun \u003ca href=\"#ubuntu-container-speedrun\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is a speedrun to getting nvim up and running in an ubuntu container.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eset\u003c/span\u003e -euxo\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir -p ~/.local/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003ePATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$PATH\u003c/span\u003e:~/.local/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install curl git unzip -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -LsSf https://astral.sh/uv/install.sh \u003cspan class=\"p\"\u003e|\u003c/span\u003e sh\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://i.jpillora.com/MordechaiHadad/bob \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv bob ~/.local/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebob install nightly\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ebob use nightly\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -s ~/.local/share/bob/nvim-bin/nvim ~/.local/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl https://i.jpillora.com/waylonwalker/nvim-manager \u003cspan class=\"p\"\u003e|\u003c/span\u003e bash\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emv nvim-manager ~/.local/bin\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_MANAGER_REPO\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003ehttps://github.com/WaylonWalker/devtainer\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_CONFIG_PATH\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003envim/.config/nvim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_MANAGER_INSTALL_DIR\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$HOME\u003c/span\u003e/.config\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_MANAGER_PREFIX\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;nvim-waylonwalker\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eNVIM_APPNAME\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003eNVIM_MANAGER_PREFIX\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e-v0.0.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install v0.0.1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install --distro lazyvim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install --distro astronvim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install --distro nvchad\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install --distro kickstart\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim-manager install --distro lunarvim\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# plugins like treesiter need gcc and make\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install gcc make -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eTZ\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;America/Chicago\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eexport\u003c/span\u003e \u003cspan class=\"nv\"\u003eDEBIAN_FRONTEND\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003enoninteractive\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt update\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install tzdata -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eln -fs /usr/share/zoneinfo/\u003cspan class=\"nv\"\u003e$TZ\u003c/span\u003e /etc/localtime\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edpkg-reconfigure -f noninteractive tzdata\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Some of the mason installs need npm\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install nodejs npm -y\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# plugins like telescope require ripgrep\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eapt install fzf ripgrep -y\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"give-it-a-star\"\u003eGive it a Star \u003ca href=\"#give-it-a-star\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’d appreciate a star if you find this app useful.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/waylonwalker/nvim-manager\" 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\"\u003ehttps://github.com/waylonwalker/nvim-manager\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nI recently built a cli application as a nearly-one-shot-app called\n[nvim-manager](https://github.com/waylonwalker/nvim-manager). It manages your\nnvim dotfiles install.\n\n![screenshot-2025-01-31T21-21-40-707Z.png](https://dropper.waylonwalker.com/api/file/20f800f1-64a6-43a3-93eb-e805b07d86b1.png){.more-cinematic}\n\n## Why\n\n{.chat-left}\nDon't we have stow?\n\n{.chat-right}\nYa, thats not enough.\n\n{.chat-left}\nWhy not??\n\n{.chat-right}\nInevitably shit goes sideways and I break my vim install.\n\n## How is nvim manager any better\n\nnvim-manager allows you to install pinned versions of your dotfiles, your\nfriends dotfiles, and distros in ~/.config.  This allows you to have stable\nversions that will not break installed while you change things.\n\nI'm sure most of us have experienced the pain of installing one plugin, only to\nupdate all of your plugins and break something.\n\nOr, you have small changes on every machine you use, because they are all just\na bit different and now you have big merge conflicts to deal with.\n\nAll of this aside you can install a distro to get you by, or a known working\nversion of your own dotfiles.\n\n## So all these versions in ~/.config\n\nya, thats the magic of `NVIM_APPNAME`, I can boot up any of these intalled\nworking versions in an instant with `NVIM_APPNAME=nvim-waylonwalker-v0.0.1\nnvim`.  I can still cowboy up and break my main install, but as long as I am\ndiligent to keep these installs untouched I will always have a version to fall\nback to in that moment of need.\n\n## So what do I need to do?\n\n1. start tagging your dotfiles as you hit stable versions\n1. Install `curl https://i.jpillora.com/waylonwalker/nvim-manager | bash`\n1. Add some env variables to your shell startup (~/.bashrc or ~/.zshrc for example)\n1. Install that pinned version of your dotfiles `nvim-manager install v0.0.1`\n1. Install a distro `nvim-manager install --distro astronvim`\n\nHere are those environment variables I was talking about, set them to use your\ndotfiles repo, name it what you like, and set your NVIM_APPNAME if you want to\ndefault to a stable `nvim` and force yourself to `unset NVIM_APPNAME` to live\non the edge.\n\n## Install nvim-manager\n\n``` bash\napt install curl git unzip\ncurl https://i.jpillora.com/MordechaiHadad/bob | bash\nbob install nightly\nbob use nightly\nln -s ~/.local/share/bob/nvim-bin/nvim ~/.local/bin\ncurl https://i.jpillora.com/waylonwalker/nvim-manager | bash\n```\n\n## Install your own dotfiles\n\nSetup with the following environment variables.\n\n``` bash\n# nvim-manager\nexport NVIM_MANAGER_REPO=https://github.com/WaylonWalker/devtainer\nexport NVIM_CONFIG_PATH=nvim/.config/nvim\nexport NVIM_MANAGER_INSTALL_DIR=$HOME/.config\nexport NVIM_MANAGER_PREFIX=\"nvim-waylonwalker\"\nexport NVIM_APPNAME=${NVIM_MANAGER_PREFIX}-v0.0.1\n```\n\n``` bash\nnvim-manager install v0.0.1\nnvim\n```\n\n\u003e Note I like installer by jpillora, I self host it for my own security, but\n\u003e feel free to download from GH if it makes you feel safer.\n\n## Ubuntu Container Speedrun\n\nHere is a speedrun to getting nvim up and running in an ubuntu container.\n\n``` bash\nset -euxo\nmkdir -p ~/.local/bin\nexport PATH=$PATH:~/.local/bin\napt update\napt install curl git unzip -y\ncurl -LsSf https://astral.sh/uv/install.sh | sh\ncurl https://i.jpillora.com/MordechaiHadad/bob | bash\nmv bob ~/.local/bin\nbob install nightly\nbob use nightly\nln -s ~/.local/share/bob/nvim-bin/nvim ~/.local/bin\ncurl https://i.jpillora.com/waylonwalker/nvim-manager | bash\nmv nvim-manager ~/.local/bin\nexport NVIM_MANAGER_REPO=https://github.com/WaylonWalker/devtainer\nexport NVIM_CONFIG_PATH=nvim/.config/nvim\nexport NVIM_MANAGER_INSTALL_DIR=$HOME/.config\nexport NVIM_MANAGER_PREFIX=\"nvim-waylonwalker\"\nexport NVIM_APPNAME=${NVIM_MANAGER_PREFIX}-v0.0.1\nnvim-manager install v0.0.1\nnvim-manager install --distro lazyvim\nnvim-manager install --distro astronvim\nnvim-manager install --distro nvchad\nnvim-manager install --distro kickstart\nnvim-manager install --distro lunarvim\n\n# plugins like treesiter need gcc and make\napt install gcc make -y\nexport TZ=\"America/Chicago\"\nexport DEBIAN_FRONTEND=noninteractive\napt update\napt install tzdata -y\nln -fs /usr/share/zoneinfo/$TZ /etc/localtime\ndpkg-reconfigure -f noninteractive tzdata\n# Some of the mason installs need npm\napt install nodejs npm -y\n# plugins like telescope require ripgrep\napt install fzf ripgrep -y\n```\n\n## Give it a Star\n\nI'd appreciate a star if you find this app useful.\n\n\u003chttps://github.com/waylonwalker/nvim-manager\u003e\n",
      "summary": "I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.",
      "date_published": "2025-01-12T21:14:19Z",
      "date_modified": "2025-01-12T21:14:19Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "neovim",
        "python",
        "vim"
      ]
    },
    {
      "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 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\u003e\u003ca href=\"/vibe-coding/\" class=\"glossary-term\" title=\"A coding style popularized in 2025. It is the act of using LLMs to generate code for an application, but the author never looks at the output. The author...\"\u003eVibe coding\u003c/a\u003e 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 \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, 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-\u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself-hosted\u003c/a\u003e-web-apps]]\u003c/li\u003e\n\u003cli\u003eDoing a second run through \u003ca href=\"/hollow-knight-home-row-layout/\" class=\"wikilink\" data-title=\"hollow knight home row layout\" data-description=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\" data-date=\"2025-05-05\" data-preview=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\"\u003ehollow knight home row layout\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlso second run of animal well\u003c/li\u003e\n\u003cli\u003eput a pause on the thps gap project \u003ca href=\"/tags/thps-gaps/\" class=\"wikilink\" data-title=\"Posts tagged: thps-gaps\" data-description=\"All posts with the tag \u0026#34;thps-gaps\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;thps-gaps\u0026#34;\"\u003ePosts tagged: thps-gaps\u003c/a\u003e\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 \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, upcoming \u003ca href=\"/markata-search/\" class=\"wikilink\" data-title=\"markata search\" data-description=\"A side effect of markata-didyoumean is that we are able to implement some rudimentary search based on slug, title, tags, and description.\" data-date=\"2025-01-30\" data-preview=\"A side effect of markata-didyoumean is that we are able to implement some rudimentary search based on slug, title, tags, and description.\"\u003emarkata search\u003c/a\u003e and \u003ca href=\"/markata-didyoumean/\" class=\"wikilink\" data-title=\"Markata DidYouMean\" data-description=\"Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...\" data-date=\"2025-01-29\" data-preview=\"Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...\"\u003eMarkata DidYouMean\u003c/a\u003e\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 \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e - 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 \u003ca href=\"/nvim-manager/\" class=\"wikilink\" data-title=\"nvim-manager\" data-description=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\" data-date=\"2025-01-12\" data-preview=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\"\u003envim-manager\u003c/a\u003e 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 layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\"\u003eanalytics\u003c/a\u003e - tag aggregator\u003c/li\u003e\n\u003cli\u003eFamily focus - \u003ca href=\"/we-beat-trailmakers/\" class=\"wikilink\" data-title=\"we beat trailmakers\" data-description=\"Today we broke through the atmosphere in trailmakers ready for pickup from those back at mission conrol.\" data-date=\"2025-01-10\" data-preview=\"Today we broke through the atmosphere in trailmakers ready for pickup from those back at mission conrol.\"\u003ewe beat trailmakers\u003c/a\u003e \u003ca href=\"/a-night-of-rounds/\" class=\"wikilink\" data-title=\"a night of rounds\" data-description=\"Tonight my son and I played rounds, I pulled clips of all the final rounds of each set of rounds. We play hardly any games with guns in them, this is one of...\" data-date=\"2025-01-16\" data-preview=\"Tonight my son and I played rounds, I pulled clips of all the final rounds of each set of rounds. We play hardly any games with guns in them, this is one of...\"\u003ea night of rounds\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "This 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 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 \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, 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 \u003ca href=\"/hollow-knight-home-row-layout/\" class=\"wikilink\" data-title=\"hollow knight home row layout\" data-description=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\" data-date=\"2025-05-05\"\u003ehollow knight home row layout\u003c/a\u003e\n* Also second run of animal well\n* put a pause on the thps gap project \u003ca href=\"/tags/thps-gaps/\" class=\"wikilink\" data-title=\"Posts tagged: thps-gaps\" data-description=\"All posts with the tag \u0026#34;thps-gaps\u0026#34;\"\u003ePosts tagged: thps-gaps\u003c/a\u003e\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 \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, upcoming \u003ca href=\"/markata-search/\" class=\"wikilink\" data-title=\"markata search\" data-description=\"A side effect of markata-didyoumean is that we are able to implement some rudimentary search based on slug, title, tags, and description.\" data-date=\"2025-01-30\"\u003emarkata search\u003c/a\u003e and \u003ca href=\"/markata-didyoumean/\" class=\"wikilink\" data-title=\"Markata DidYouMean\" data-description=\"Coming in Markata 0.9.1 is far better documentation. i.e. Documentation that actually exists for everything. As part of poking around I realized that I often...\" data-date=\"2025-01-29\"\u003eMarkata DidYouMean\u003c/a\u003e\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 \u003ca href=\"/nvim-manager/\" class=\"wikilink\" data-title=\"nvim-manager\" data-description=\"I recently built a cli application as a nearly-one-shot-app called nvim-manager. It manages your nvim dotfiles install.\" data-date=\"2025-01-12\"\u003envim-manager\u003c/a\u003e 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 layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e - tag aggregator\n* Family focus - \u003ca href=\"/we-beat-trailmakers/\" class=\"wikilink\" data-title=\"we beat trailmakers\" data-description=\"Today we broke through the atmosphere in trailmakers ready for pickup from those back at mission conrol.\" data-date=\"2025-01-10\"\u003ewe beat trailmakers\u003c/a\u003e \u003ca href=\"/a-night-of-rounds/\" class=\"wikilink\" data-title=\"a night of rounds\" data-description=\"Tonight my son and I played rounds, I pulled clips of all the final rounds of each set of rounds. We play hardly any games with guns in them, this is one of...\" data-date=\"2025-01-16\"\u003ea night of rounds\u003c/a\u003e\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/one-shot-s3-cleanup/",
      "url": "https://waylonwalker.com/one-shot-s3-cleanup/",
      "title": "one-shot-s3-cleanup",
      "content_html": "\u003cp\u003eSo I made a mistake in an app I am working on and ended up creating thumbnails\nof thumbnails, and thumbnails of thumbnails of thumbnails… etc. I was able to\ndelete them all, but I wanted to make a one-shot script to do it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e804dd2c-e3d9-4a83-83fa-95a720cdc92b.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T21-20-56-934Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e804dd2c-e3d9-4a83-83fa-95a720cdc92b.png\" alt=\"screenshot-2025-01-31T21-20-56-934Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T21-20-56-934Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"one-shot-app\"\u003eOne Shot App \u003ca href=\"#one-shot-app\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI got the idea of the one shot app from \u003ca href=\"https://simonwillison.net/2024/Dec/19/one-shot-python-tools/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\" class=\"has-avatar  has-avatar-before\"\u003eSimon\nWillison\u003c/a\u003e and\nreplicated his setup in a chatgpt project\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/78d6eea9-29a2-43ed-b09e-1585762c991c.webp\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-12T18-16-57-443Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/78d6eea9-29a2-43ed-b09e-1585762c991c.webp\" alt=\"screenshot-2025-01-12T18-16-57-443Z.png\"/ data-glightbox=\"description: screenshot-2025-01-12T18-16-57-443Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"initial-prompt\"\u003eInitial Prompt \u003ca href=\"#initial-prompt\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ea mistake was made in my s3 bucket and I\u0026#39;ve created a bunch of extra files\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewrite a script that deletes all files that contain _thumb_thumb\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ [devtainer] ❯ aws s3 ls s3://dropper\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2024-12-29 14:32:32      16158 02271f4c-be18-4bea-b23e-d00f9fe42b9f.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:20:49       2878 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:17       2858 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:44       2856 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:44       2856 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb_thumb_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2024-12-27 10:25:36       2812 06422c09-d0da-44ec-9339-786864ebccf2.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:20:49       2710 06422c09-d0da-44ec-9339-786864ebccf2_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:17       2652 06422c09-d0da-44ec-9339-786864ebccf2_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:45       2632 06422c09-d0da-44ec-9339-786864ebccf2_thumb_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:45       2632 06422c09-d0da-44ec-9339-786864ebccf2_thumb_thumb_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2024-12-29 20:44:14     146060 074edddb-8b46-4d94-9b55-d70a7bb74366.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:20:50      12476 074edddb-8b46-4d94-9b55-d70a7bb74366_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e2025-01-11 14:21:17      12400 074edddb-8b46-4d94-9b55-d70a7bb74366_thumb_thumb.webp\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecreate a typer application to do this job\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003einclude a --dry-run flag\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emake the search for _thumb_thumb editable\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"s3-cleanup\"\u003es3_cleanup \u003ca href=\"#s3-cleanup\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is the result of the s3_cleanup script.  It ended up being 5 or 6 passes\nto get everything I wanted with soft-delete enabled. Nice preview outputs in\nthe dry run.  This was 90% created by chatgpt 4o, with some slight hand edits\nby me along the way.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"ch\"\u003e#!/usr/bin/env -S uv run --quiet --script\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# /// script\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# requires-python = \u0026#34;\u0026gt;=3.12\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# dependencies = [\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#34;boto3\u0026#34;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#34;typer\u0026#34;,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e#     \u0026#34;rich\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# ///\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003eboto3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003edatetime\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003etimezone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.console\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eConsole\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003erich.table\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eTable\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003etraceback\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003etyper\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eapp\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eTyper\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003econsole\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eConsole\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eDEFAULT_SOFT_DELETE_DIR\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;soft-delete/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Convert bytes to a human-readable format.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eunit\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;B\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;KB\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;MB\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;GB\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;TB\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esize\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e1024\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"si\"\u003e:\u003c/span\u003e\u003cspan class=\"s2\"\u003e.2f\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eunit\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003esize\u003c/span\u003e \u003cspan class=\"o\"\u003e/=\u003c/span\u003e \u003cspan class=\"mi\"\u003e1024\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esize\u003c/span\u003e\u003cspan class=\"si\"\u003e:\u003c/span\u003e\u003cspan class=\"s2\"\u003e.2f\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e PB\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003ecalculate_file_age\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003elast_modified\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u0026gt;\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Calculate the age of the file from the current time.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003enow\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003enow\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etimezone\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eutc\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eage\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003enow\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"n\"\u003elast_modified\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003edays\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edays\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003edays\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003edays\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e days\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ehours\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eremainder\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"nb\"\u003edivmod\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eage\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eseconds\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"mi\"\u003e3600\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eminutes\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eremainder\u003c/span\u003e \u003cspan class=\"o\"\u003e//\u003c/span\u003e \u003cspan class=\"mi\"\u003e60\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003ehours\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ehours\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e hours\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eminutes\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e minutes\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@app.command\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eclean\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eArgument\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e...\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The name of the S3 bucket.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esubstring\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eArgument\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"o\"\u003e...\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The substring to search for in file names.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003edry_run\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003ebool\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;If set, no files will be deleted; only listed.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esoft_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003ebool\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;If set, files will be moved to a soft delete directory instead of permanently deleted.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eDEFAULT_SOFT_DELETE_DIR\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The directory to move soft-deleted files to.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emax_age\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Maximum age of files to include, in days.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003emin_age\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003eint\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Minimum age of files to include, in days.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Delete or soft-delete files in an S3 bucket that contain a specific substring in their names.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003es3\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eboto3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;s3\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# List all objects in the bucket\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elist_objects_v2\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold yellow]No files found in the bucket.[/bold yellow]\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003enow\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003edatetime\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003enow\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etimezone\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eutc\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003efile_within_age_range\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003efile_age\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003enow\u003c/span\u003e \u003cspan class=\"o\"\u003e-\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;LastModified\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edays\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003emax_age\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003efile_age\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026gt;\u003c/span\u003e \u003cspan class=\"n\"\u003emax_age\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003emin_age\u003c/span\u003e \u003cspan class=\"ow\"\u003eis\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003efile_age\u003c/span\u003e \u003cspan class=\"o\"\u003e\u0026lt;\u003c/span\u003e \u003cspan class=\"n\"\u003emin_age\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e \u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003efiles_to_process\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esubstring\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e \u003cspan class=\"ow\"\u003eand\u003c/span\u003e \u003cspan class=\"n\"\u003efile_within_age_range\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_process\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"s2\"\u003e\u0026#34;[bold yellow]No files matching criteria found in the bucket.[/bold yellow]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003edry_run\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"s2\"\u003e\u0026#34;[bold blue]Dry run mode: The following files would be processed:[/bold blue]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eTable\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Files to be Processed\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;File Name\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;cyan\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eno_wrap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;magenta\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejustify\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Age\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;green\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejustify\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Action\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;yellow\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eno_wrap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_process\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003ehuman_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003efile_age\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ecalculate_file_age\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;LastModified\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eaction\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold yellow]-\u0026gt; \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"si\"\u003e}{\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Key\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e[/bold yellow]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esoft_delete\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"k\"\u003eelse\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;[bold red]DELETE[/bold red]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_row\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e \u003cspan class=\"n\"\u003ehuman_size\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003efile_age\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eaction\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e \u003cspan class=\"o\"\u003e+=\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e[bold green]Summary:[/bold green] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efiles_to_process\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e files, Total Size: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e, Operation: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Soft Delete\u0026#39;\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esoft_delete\u003c/span\u003e \u003cspan class=\"k\"\u003eelse\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Delete\u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_process\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esoft_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003ecopy_source\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Bucket\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003enew_key\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"si\"\u003e}{\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecopy_object\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                        \u003cspan class=\"n\"\u003eCopySource\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ecopy_source\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eKey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003enew_key\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edelete_object\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eKey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                        \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold yellow]Moved to soft-delete:[/bold yellow] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e -\u0026gt; \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003enew_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edelete_object\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eKey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold red]Deleted:[/bold red] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold green]Operation completed. \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efiles_to_process\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e files processed. Operation: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;Soft Delete\u0026#39;\u003c/span\u003e \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003esoft_delete\u003c/span\u003e \u003cspan class=\"k\"\u003eelse\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;Delete\u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e[/bold green]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold red]Error:[/bold red] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;red\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@app.command\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eclear_soft_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eArgument\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e...\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The name of the S3 bucket.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eDEFAULT_SOFT_DELETE_DIR\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The soft delete directory to clear.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003edry_run\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003ebool\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;If set, no files will be deleted; only listed.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Remove all files in the soft delete directory.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003es3\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eboto3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;s3\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elist_objects_v2\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ePrefix\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold yellow]No files found in the soft delete directory \u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#39;.[/bold yellow]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003efiles_to_delete\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003edry_run\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"s2\"\u003e\u0026#34;[bold blue]Dry run mode: The following files would be deleted from the soft delete directory:[/bold blue]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eTable\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Files to be Deleted\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;File Name\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;cyan\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eno_wrap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;magenta\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejustify\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003ehuman_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_row\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e \u003cspan class=\"n\"\u003ehuman_size\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e \u003cspan class=\"o\"\u003e+=\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e[bold green]Summary:[/bold green] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efiles_to_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e files, Total Size: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edelete_object\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eKey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold red]Deleted from soft-delete:[/bold red] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold green]Soft delete directory \u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#39; cleared. \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efiles_to_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e files removed.[/bold green]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold red]Error:[/bold red] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;red\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold red]Operation failed.[/bold red]\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etraceback\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eformat_exc\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nd\"\u003e@app.command\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eundo_soft_delete\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eArgument\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"o\"\u003e...\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The name of the S3 bucket.\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003estr\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eDEFAULT_SOFT_DELETE_DIR\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;The soft delete directory to restore from.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003edry_run\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"nb\"\u003ebool\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003etyper\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eOption\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"kc\"\u003eFalse\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ehelp\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;If set, no files will be restored; only listed.\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e),\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;\u0026#34;\u0026#34;Restore all files from the soft delete directory to their original locations.\u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003es3\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eboto3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;s3\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003etry\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003elist_objects_v2\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ePrefix\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e \u003cspan class=\"ow\"\u003enot\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold yellow]No files found in the soft delete directory \u0026#39;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#39;.[/bold yellow]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003ereturn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003efiles_to_restore\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Contents\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003edry_run\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"s2\"\u003e\u0026#34;[bold blue]Dry run mode: The following files would be restored:[/bold blue]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eTable\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Files to be Restored\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;File Name\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;cyan\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eno_wrap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;magenta\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejustify\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_column\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Original Location\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;green\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eno_wrap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"kc\"\u003eTrue\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"mi\"\u003e0\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_restore\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003ehuman_size\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e])\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eoriginal_key\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e][\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e:]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eadd_row\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e],\u003c/span\u003e \u003cspan class=\"n\"\u003ehuman_size\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eoriginal_key\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e \u003cspan class=\"o\"\u003e+=\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Size\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etable\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"se\"\u003e\\n\u003c/span\u003e\u003cspan class=\"s2\"\u003e[bold green]Summary:[/bold green] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efiles_to_restore\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e files, Total Size: \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ehuman_readable_size\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003etotal_size\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003efiles_to_restore\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eobj\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003eoriginal_key\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003esoft_delete_dir\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e \u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e]\u003c/span\u003e  \u003cspan class=\"c1\"\u003e# Remove the soft delete prefix\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003ecopy_source\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Bucket\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Key\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ecopy_object\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"n\"\u003eCopySource\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ecopy_source\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eKey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003eoriginal_key\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003es3\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003edelete_object\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eBucket\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003ebucket_name\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eKey\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                    \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold green]Restored:[/bold green] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003efile_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e -\u0026gt; \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eoriginal_key\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold green]Restoration completed. \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"nb\"\u003elen\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003efiles_to_restore\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e files restored.[/bold green]\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eexcept\u003c/span\u003e \u003cspan class=\"ne\"\u003eException\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003econsole\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;[bold red]Error:[/bold red] \u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003ee\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003estyle\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;red\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"vm\"\u003e__name__\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003eapp\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"full-help-text-output\"\u003efull help text output \u003ca href=\"#full-help-text-output\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHere is the help text for all of the commands in the script.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003edropper on  main \u003cspan class=\"o\"\u003e[\u003c/span\u003e!?\u003cspan class=\"o\"\u003e]\u003c/span\u003e is 📦 v1.0.0 via  v22.13.0  v3.11.10 on  \u003cspan class=\"o\"\u003e(\u003c/span\u003eus-east-1\u003cspan class=\"o\"\u003e)\u003c/span\u003e  NO PYTHON VENV SET took 7s\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ ./scripts/s3_cleanup.py --help\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Usage: s3_cleanup.py \u003cspan class=\"o\"\u003e[\u003c/span\u003eOPTIONS\u003cspan class=\"o\"\u003e]\u003c/span\u003e COMMAND \u003cspan class=\"o\"\u003e[\u003c/span\u003eARGS\u003cspan class=\"o\"\u003e]\u003c/span\u003e...\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --install-completion          Install completion \u003cspan class=\"k\"\u003efor\u003c/span\u003e the current shell.                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --show-completion             Show completion \u003cspan class=\"k\"\u003efor\u003c/span\u003e the current shell, to copy it or customize the installation.  │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --help                        Show this message and exit.                                                       │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ clean               Delete or soft-delete files in an S3 bucket that contain a specific substring in their      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                     names.                                                                                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ clear-soft-delete   Remove all files in the soft delete directory.                                              │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ undo-soft-delete    Restore all files from the soft delete directory to their original locations.               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ ./scripts/s3_cleanup.py clean --help\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Usage: s3_cleanup.py clean \u003cspan class=\"o\"\u003e[\u003c/span\u003eOPTIONS\u003cspan class=\"o\"\u003e]\u003c/span\u003e BUCKET_NAME SUBSTRING\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Delete or soft-delete files in an S3 bucket that contain a specific substring in their names.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ *    bucket_name      TEXT  The name of the S3 bucket. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: None\u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003erequired\u003cspan class=\"o\"\u003e]\u003c/span\u003e                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ *    substring        TEXT  The substring to search \u003cspan class=\"k\"\u003efor\u003c/span\u003e in file names. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: None\u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003erequired\u003cspan class=\"o\"\u003e]\u003c/span\u003e               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --dry-run            --no-dry-run                 If set, no files will be deleted\u003cspan class=\"p\"\u003e;\u003c/span\u003e only listed.                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                                                   \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: no-dry-run\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                         │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --soft-delete        --no-soft-delete             If set, files will be moved to a soft delete directory        │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                                                   instead of permanently deleted.                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                                                   \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: no-soft-delete\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --soft-delete-dir                        TEXT     The directory to move soft-deleted files to.                  │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                                                   \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: soft-delete/\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                       │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --max-age                                INTEGER  Maximum age of files to include, in days. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: None\u003cspan class=\"o\"\u003e]\u003c/span\u003e     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --min-age                                INTEGER  Minimum age of files to include, in days. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: None\u003cspan class=\"o\"\u003e]\u003c/span\u003e     │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --help                                            Show this message and exit.                                   │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ ./scripts/s3_cleanup.py clear-soft-delete --help\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Usage: s3_cleanup.py clear-soft-delete \u003cspan class=\"o\"\u003e[\u003c/span\u003eOPTIONS\u003cspan class=\"o\"\u003e]\u003c/span\u003e BUCKET_NAME\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Remove all files in the soft delete directory.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ *    bucket_name      TEXT  The name of the S3 bucket. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: None\u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003erequired\u003cspan class=\"o\"\u003e]\u003c/span\u003e                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --soft-delete-dir                    TEXT  The soft delete directory to clear. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: soft-delete/\u003cspan class=\"o\"\u003e]\u003c/span\u003e          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --dry-run            --no-dry-run          If set, no files will be deleted\u003cspan class=\"p\"\u003e;\u003c/span\u003e only listed. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: no-dry-run\u003cspan class=\"o\"\u003e]\u003c/span\u003e │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --help                                     Show this message and exit.                                          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ ./scripts/s3_cleanup.py undo-soft-delete --help\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Usage: s3_cleanup.py undo-soft-delete \u003cspan class=\"o\"\u003e[\u003c/span\u003eOPTIONS\u003cspan class=\"o\"\u003e]\u003c/span\u003e BUCKET_NAME\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e Restore all files from the soft delete directory to their original locations.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ *    bucket_name      TEXT  The name of the S3 bucket. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: None\u003cspan class=\"o\"\u003e]\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003erequired\u003cspan class=\"o\"\u003e]\u003c/span\u003e                               │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --soft-delete-dir                    TEXT  The soft delete directory to restore from. \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: soft-delete/\u003cspan class=\"o\"\u003e]\u003c/span\u003e   │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --dry-run            --no-dry-run          If set, no files will be restored\u003cspan class=\"p\"\u003e;\u003c/span\u003e only listed.                      │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│                                            \u003cspan class=\"o\"\u003e[\u003c/span\u003edefault: no-dry-run\u003cspan class=\"o\"\u003e]\u003c/span\u003e                                                │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e│ --help                                     Show this message and exit.                                          │\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nSo I made a mistake in an app I am working on and ended up creating thumbnails\nof thumbnails, and thumbnails of thumbnails of thumbnails... etc. I was able to\ndelete them all, but I wanted to make a one-shot script to do it.\n\n![screenshot-2025-01-31T21-20-56-934Z.png](https://dropper.waylonwalker.com/api/file/e804dd2c-e3d9-4a83-83fa-95a720cdc92b.png)\n\n## One Shot App\n\nI got the idea of the one shot app from [Simon\nWillison](https://simonwillison.net/2024/Dec/19/one-shot-python-tools/) and\nreplicated his setup in a chatgpt project\n\n![screenshot-2025-01-12T18-16-57-443Z.png](https://dropper.waylonwalker.com/api/file/78d6eea9-29a2-43ed-b09e-1585762c991c.webp)\n\n## Initial Prompt\n\n``` txt\na mistake was made in my s3 bucket and I've created a bunch of extra files\nwrite a script that deletes all files that contain _thumb_thumb\n\n⬢ [devtainer] ❯ aws s3 ls s3://dropper\n2024-12-29 14:32:32      16158 02271f4c-be18-4bea-b23e-d00f9fe42b9f.webp\n2025-01-11 14:20:49       2878 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb.webp\n2025-01-11 14:21:17       2858 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb_thumb.webp\n2025-01-11 14:21:44       2856 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb_thumb_thumb.webp\n2025-01-11 14:21:44       2856 02271f4c-be18-4bea-b23e-d00f9fe42b9f_thumb_thumb_thumb_thumb.webp\n2024-12-27 10:25:36       2812 06422c09-d0da-44ec-9339-786864ebccf2.webp\n2025-01-11 14:20:49       2710 06422c09-d0da-44ec-9339-786864ebccf2_thumb.webp\n2025-01-11 14:21:17       2652 06422c09-d0da-44ec-9339-786864ebccf2_thumb_thumb.webp\n2025-01-11 14:21:45       2632 06422c09-d0da-44ec-9339-786864ebccf2_thumb_thumb_thumb.webp\n2025-01-11 14:21:45       2632 06422c09-d0da-44ec-9339-786864ebccf2_thumb_thumb_thumb_thumb.webp\n2024-12-29 20:44:14     146060 074edddb-8b46-4d94-9b55-d70a7bb74366.webp\n2025-01-11 14:20:50      12476 074edddb-8b46-4d94-9b55-d70a7bb74366_thumb.webp\n2025-01-11 14:21:17      12400 074edddb-8b46-4d94-9b55-d70a7bb74366_thumb_thumb.webp\n\ncreate a typer application to do this job\ninclude a --dry-run flag\nmake the search for _thumb_thumb editable\n```\n\n## s3_cleanup\n\nHere is the result of the s3_cleanup script.  It ended up being 5 or 6 passes\nto get everything I wanted with soft-delete enabled. Nice preview outputs in\nthe dry run.  This was 90% created by chatgpt 4o, with some slight hand edits\nby me along the way.\n\n``` python\n#!/usr/bin/env -S uv run --quiet --script\n# /// script\n# requires-python = \"\u003e=3.12\"\n# dependencies = [\n#     \"boto3\",\n#     \"typer\",\n#     \"rich\"\n# ]\n# ///\n\nimport boto3\nfrom datetime import datetime, timezone\nfrom rich.console import Console\nfrom rich.table import Table\nimport traceback\nimport typer\n\napp = typer.Typer()\nconsole = Console()\n\nDEFAULT_SOFT_DELETE_DIR = \"soft-delete/\"\n\n\ndef human_readable_size(size: int) -\u003e str:\n    \"\"\"Convert bytes to a human-readable format.\"\"\"\n    for unit in [\"B\", \"KB\", \"MB\", \"GB\", \"TB\"]:\n        if size \u003c 1024:\n            return f\"{size:.2f} {unit}\"\n        size /= 1024\n    return f\"{size:.2f} PB\"\n\n\ndef calculate_file_age(last_modified: datetime) -\u003e str:\n    \"\"\"Calculate the age of the file from the current time.\"\"\"\n    now = datetime.now(timezone.utc)\n    age = now - last_modified\n    days = age.days\n    if days \u003e 0:\n        return f\"{days} days\"\n    hours, remainder = divmod(age.seconds, 3600)\n    minutes = remainder // 60\n    if hours \u003e 0:\n        return f\"{hours} hours\"\n    return f\"{minutes} minutes\"\n\n\n@app.command()\ndef clean(\n    bucket_name: str = typer.Argument(..., help=\"The name of the S3 bucket.\"),\n    substring: str = typer.Argument(\n        ..., help=\"The substring to search for in file names.\"\n    ),\n    dry_run: bool = typer.Option(\n        False, help=\"If set, no files will be deleted; only listed.\"\n    ),\n    soft_delete: bool = typer.Option(\n        False,\n        help=\"If set, files will be moved to a soft delete directory instead of permanently deleted.\",\n    ),\n    soft_delete_dir: str = typer.Option(\n        DEFAULT_SOFT_DELETE_DIR, help=\"The directory to move soft-deleted files to.\"\n    ),\n    max_age: int = typer.Option(None, help=\"Maximum age of files to include, in days.\"),\n    min_age: int = typer.Option(None, help=\"Minimum age of files to include, in days.\"),\n):\n    \"\"\"Delete or soft-delete files in an S3 bucket that contain a specific substring in their names.\"\"\"\n    s3 = boto3.client(\"s3\")\n\n    try:\n        # List all objects in the bucket\n        response = s3.list_objects_v2(Bucket=bucket_name)\n\n        if \"Contents\" not in response:\n            console.print(\"[bold yellow]No files found in the bucket.[/bold yellow]\")\n            return\n\n        now = datetime.now(timezone.utc)\n\n        def file_within_age_range(obj):\n            file_age = (now - obj[\"LastModified\"]).days\n            if max_age is not None and file_age \u003e max_age:\n                return False\n            if min_age is not None and file_age \u003c min_age:\n                return False\n            return True\n\n        files_to_process = [\n            obj\n            for obj in response[\"Contents\"]\n            if substring in obj[\"Key\"] and file_within_age_range(obj)\n        ]\n\n        if not files_to_process:\n            console.print(\n                \"[bold yellow]No files matching criteria found in the bucket.[/bold yellow]\"\n            )\n            return\n\n        if dry_run:\n            console.print(\n                \"[bold blue]Dry run mode: The following files would be processed:[/bold blue]\"\n            )\n            table = Table(title=\"Files to be Processed\")\n            table.add_column(\"File Name\", style=\"cyan\", no_wrap=True)\n            table.add_column(\"Size\", style=\"magenta\", justify=\"right\")\n            table.add_column(\"Age\", style=\"green\", justify=\"right\")\n            table.add_column(\"Action\", style=\"yellow\", no_wrap=True)\n\n            total_size = 0\n            for obj in files_to_process:\n                human_size = human_readable_size(obj[\"Size\"])\n                file_age = calculate_file_age(obj[\"LastModified\"])\n                action = (\n                    f\"[bold yellow]-\u003e {soft_delete_dir}{obj['Key']}[/bold yellow]\"\n                    if soft_delete\n                    else \"[bold red]DELETE[/bold red]\"\n                )\n                table.add_row(obj[\"Key\"], human_size, file_age, action)\n                total_size += obj[\"Size\"]\n\n            console.print(table)\n            console.print(\n                f\"\\n[bold green]Summary:[/bold green] {len(files_to_process)} files, Total Size: {human_readable_size(total_size)}, Operation: {'Soft Delete' if soft_delete else 'Delete'}\"\n            )\n\n        else:\n            for obj in files_to_process:\n                file_key = obj[\"Key\"]\n                if soft_delete:\n                    copy_source = {\"Bucket\": bucket_name, \"Key\": file_key}\n                    new_key = f\"{soft_delete_dir}{file_key}\"\n                    s3.copy_object(\n                        CopySource=copy_source, Bucket=bucket_name, Key=new_key\n                    )\n                    s3.delete_object(Bucket=bucket_name, Key=file_key)\n                    console.print(\n                        f\"[bold yellow]Moved to soft-delete:[/bold yellow] {file_key} -\u003e {new_key}\"\n                    )\n                else:\n                    s3.delete_object(Bucket=bucket_name, Key=file_key)\n                    console.print(f\"[bold red]Deleted:[/bold red] {file_key}\")\n\n            console.print(\n                f\"[bold green]Operation completed. {len(files_to_process)} files processed. Operation: {'Soft Delete' if soft_delete else 'Delete'}[/bold green]\"\n            )\n\n    except Exception as e:\n        console.print(f\"[bold red]Error:[/bold red] {e}\", style=\"red\")\n\n\n@app.command()\ndef clear_soft_delete(\n    bucket_name: str = typer.Argument(..., help=\"The name of the S3 bucket.\"),\n    soft_delete_dir: str = typer.Option(\n        DEFAULT_SOFT_DELETE_DIR, help=\"The soft delete directory to clear.\"\n    ),\n    dry_run: bool = typer.Option(\n        False, help=\"If set, no files will be deleted; only listed.\"\n    ),\n):\n    \"\"\"Remove all files in the soft delete directory.\"\"\"\n    s3 = boto3.client(\"s3\")\n\n    try:\n        response = s3.list_objects_v2(Bucket=bucket_name, Prefix=soft_delete_dir)\n\n        if \"Contents\" not in response:\n            console.print(\n                f\"[bold yellow]No files found in the soft delete directory '{soft_delete_dir}'.[/bold yellow]\"\n            )\n            return\n\n        files_to_delete = [obj for obj in response[\"Contents\"]]\n\n        if dry_run:\n            console.print(\n                \"[bold blue]Dry run mode: The following files would be deleted from the soft delete directory:[/bold blue]\"\n            )\n            table = Table(title=\"Files to be Deleted\")\n            table.add_column(\"File Name\", style=\"cyan\", no_wrap=True)\n            table.add_column(\"Size\", style=\"magenta\", justify=\"right\")\n            total_size = 0\n\n            for obj in files_to_delete:\n                human_size = human_readable_size(obj[\"Size\"])\n                table.add_row(obj[\"Key\"], human_size)\n                total_size += obj[\"Size\"]\n\n            console.print(table)\n            console.print(\n                f\"\\n[bold green]Summary:[/bold green] {len(files_to_delete)} files, Total Size: {human_readable_size(total_size)}\"\n            )\n        else:\n            for file_key in files_to_delete:\n                file_key = file_key[\"Key\"]\n                s3.delete_object(Bucket=bucket_name, Key=file_key)\n                console.print(\n                    f\"[bold red]Deleted from soft-delete:[/bold red] {file_key}\"\n                )\n\n            console.print(\n                f\"[bold green]Soft delete directory '{soft_delete_dir}' cleared. {len(files_to_delete)} files removed.[/bold green]\"\n            )\n\n    except Exception as e:\n        console.print(f\"[bold red]Error:[/bold red] {e}\", style=\"red\")\n        console.print(\"[bold red]Operation failed.[/bold red]\")\n\n        console.print(traceback.format_exc())\n\n\n@app.command()\ndef undo_soft_delete(\n    bucket_name: str = typer.Argument(..., help=\"The name of the S3 bucket.\"),\n    soft_delete_dir: str = typer.Option(\n        DEFAULT_SOFT_DELETE_DIR, help=\"The soft delete directory to restore from.\"\n    ),\n    dry_run: bool = typer.Option(\n        False, help=\"If set, no files will be restored; only listed.\"\n    ),\n):\n    \"\"\"Restore all files from the soft delete directory to their original locations.\"\"\"\n    s3 = boto3.client(\"s3\")\n\n    try:\n        response = s3.list_objects_v2(Bucket=bucket_name, Prefix=soft_delete_dir)\n\n        if \"Contents\" not in response:\n            console.print(\n                f\"[bold yellow]No files found in the soft delete directory '{soft_delete_dir}'.[/bold yellow]\"\n            )\n            return\n\n        files_to_restore = [obj for obj in response[\"Contents\"]]\n\n        if dry_run:\n            console.print(\n                \"[bold blue]Dry run mode: The following files would be restored:[/bold blue]\"\n            )\n            table = Table(title=\"Files to be Restored\")\n            table.add_column(\"File Name\", style=\"cyan\", no_wrap=True)\n            table.add_column(\"Size\", style=\"magenta\", justify=\"right\")\n            table.add_column(\"Original Location\", style=\"green\", no_wrap=True)\n            total_size = 0\n\n            for obj in files_to_restore:\n                human_size = human_readable_size(obj[\"Size\"])\n                original_key = obj[\"Key\"][len(soft_delete_dir) :]\n                table.add_row(obj[\"Key\"], human_size, original_key)\n                total_size += obj[\"Size\"]\n\n            console.print(table)\n            console.print(\n                f\"\\n[bold green]Summary:[/bold green] {len(files_to_restore)} files, Total Size: {human_readable_size(total_size)}\"\n            )\n        else:\n            for obj in files_to_restore:\n                file_key = obj[\"Key\"]\n                original_key = file_key[\n                    len(soft_delete_dir) :\n                ]  # Remove the soft delete prefix\n                copy_source = {\"Bucket\": bucket_name, \"Key\": file_key}\n                s3.copy_object(\n                    CopySource=copy_source, Bucket=bucket_name, Key=original_key\n                )\n                s3.delete_object(Bucket=bucket_name, Key=file_key)\n                console.print(\n                    f\"[bold green]Restored:[/bold green] {file_key} -\u003e {original_key}\"\n                )\n\n            console.print(\n                f\"[bold green]Restoration completed. {len(files_to_restore)} files restored.[/bold green]\"\n            )\n\n    except Exception as e:\n        console.print(f\"[bold red]Error:[/bold red] {e}\", style=\"red\")\n\n\nif __name__ == \"__main__\":\n    app()\n```\n\n## full help text output\n\nHere is the help text for all of the commands in the script.\n\n``` bash\ndropper on  main [!?] is 📦 v1.0.0 via  v22.13.0  v3.11.10 on  (us-east-1)  NO PYTHON VENV SET took 7s\n⬢ [devtainer] ❯ ./scripts/s3_cleanup.py --help\n\n Usage: s3_cleanup.py [OPTIONS] COMMAND [ARGS]...\n\n╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ --install-completion          Install completion for the current shell.                                         │\n│ --show-completion             Show completion for the current shell, to copy it or customize the installation.  │\n│ --help                        Show this message and exit.                                                       │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n╭─ Commands ──────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ clean               Delete or soft-delete files in an S3 bucket that contain a specific substring in their      │\n│                     names.                                                                                      │\n│ clear-soft-delete   Remove all files in the soft delete directory.                                              │\n│ undo-soft-delete    Restore all files from the soft delete directory to their original locations.               │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\n⬢ [devtainer] ❯ ./scripts/s3_cleanup.py clean --help\n\n Usage: s3_cleanup.py clean [OPTIONS] BUCKET_NAME SUBSTRING\n\n Delete or soft-delete files in an S3 bucket that contain a specific substring in their names.\n\n╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ *    bucket_name      TEXT  The name of the S3 bucket. [default: None] [required]                               │\n│ *    substring        TEXT  The substring to search for in file names. [default: None] [required]               │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ --dry-run            --no-dry-run                 If set, no files will be deleted; only listed.                │\n│                                                   [default: no-dry-run]                                         │\n│ --soft-delete        --no-soft-delete             If set, files will be moved to a soft delete directory        │\n│                                                   instead of permanently deleted.                               │\n│                                                   [default: no-soft-delete]                                     │\n│ --soft-delete-dir                        TEXT     The directory to move soft-deleted files to.                  │\n│                                                   [default: soft-delete/]                                       │\n│ --max-age                                INTEGER  Maximum age of files to include, in days. [default: None]     │\n│ --min-age                                INTEGER  Minimum age of files to include, in days. [default: None]     │\n│ --help                                            Show this message and exit.                                   │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\n⬢ [devtainer] ❯ ./scripts/s3_cleanup.py clear-soft-delete --help\n\n Usage: s3_cleanup.py clear-soft-delete [OPTIONS] BUCKET_NAME\n\n Remove all files in the soft delete directory.\n\n╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ *    bucket_name      TEXT  The name of the S3 bucket. [default: None] [required]                               │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ --soft-delete-dir                    TEXT  The soft delete directory to clear. [default: soft-delete/]          │\n│ --dry-run            --no-dry-run          If set, no files will be deleted; only listed. [default: no-dry-run] │\n│ --help                                     Show this message and exit.                                          │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\n⬢ [devtainer] ❯ ./scripts/s3_cleanup.py undo-soft-delete --help\n\n Usage: s3_cleanup.py undo-soft-delete [OPTIONS] BUCKET_NAME\n\n Restore all files from the soft delete directory to their original locations.\n\n╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ *    bucket_name      TEXT  The name of the S3 bucket. [default: None] [required]                               │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ --soft-delete-dir                    TEXT  The soft delete directory to restore from. [default: soft-delete/]   │\n│ --dry-run            --no-dry-run          If set, no files will be restored; only listed.                      │\n│                                            [default: no-dry-run]                                                │\n│ --help                                     Show this message and exit.                                          │\n╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\n```\n",
      "summary": "So I made a mistake in an app I am working on and ended up creating thumbnails of thumbnails, and thumbnails of thumbnails of thumbnails... etc. I was able...",
      "date_published": "2025-01-12T11:18:25Z",
      "date_modified": "2025-01-12T11:18:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "python"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-527/",
      "url": "https://waylonwalker.com/thought-527/",
      "title": "💭 Quick Start - kotaemon Docs",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cinnamon.github.io/kotaemon/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eQuick Start - kotaemon Docs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecinnamon.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003einteresting UI for RAG based workflows, i.e. chatting with your documents.  It looks like it can run a number of models, feels like ollama with RAG and a nice web ui.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cinnamon.github.io/kotaemon/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eQuick Start - kotaemon Docs\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecinnamon.github.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\ninteresting UI for RAG based workflows, i.e. chatting with your documents.  It looks like it can run a number of models, feels like ollama with RAG and a nice web ui.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://cinnamon.github.io/kotaemon/",
      "date_published": "2025-01-11T16:34:26Z",
      "date_modified": "2025-01-11T16:34:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "rag",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-526/",
      "url": "https://waylonwalker.com/thought-526/",
      "title": "💭 Bluesky is more like Twitter than X is",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://joelhooks.com/bluesky\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://res.cloudinary.com/badass-courses/image/upload/w_1200,h_630,c_fill,f_auto/w_1020,h_450,c_fit,co_rgb:FFFFFF,g_west,x_90,y_-40,l_text:Roboto_60_left_bold:bluesky%20is%20more%20like%20twitter%20than%20x%20is/v1731357274/social-image-templates/joelhooks-com_sbhjby.png\" alt=\"Bluesky is more like Twitter than X is\" loading=\"lazy\"/ data-glightbox=\"description: Bluesky is more like Twitter than X is\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBluesky is more like Twitter than X is\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejoelhooks.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eBluesky is almost excatly like twitter was when I joined years ago.  It’s gone crazy lately bogged deep in politics, bots, and ads.  I’ve seen like two scroll pages of ads in a row, its nuts.  What I did not know before Joel pointed out here is that the feed I am looking at is my following feed, its only feed of people I follow in descending order.  On bluesky you get to pick your feed!!!  This feels like tweetdeck did back when we were able to run that.  You could tune in search terms and save them it was glorious.  Bluesky has some really interesting ones that you can use like popular with friends, only posts, my bangers, that have a pre defined algorithms.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://joelhooks.com/bluesky\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://res.cloudinary.com/badass-courses/image/upload/w_1200,h_630,c_fill,f_auto/w_1020,h_450,c_fit,co_rgb:FFFFFF,g_west,x_90,y_-40,l_text:Roboto_60_left_bold:bluesky%20is%20more%20like%20twitter%20than%20x%20is/v1731357274/social-image-templates/joelhooks-com_sbhjby.png\" alt=\"Bluesky is more like Twitter than X is\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eBluesky is more like Twitter than X is\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ejoelhooks.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nBluesky is almost excatly like twitter was when I joined years ago.  It's gone crazy lately bogged deep in politics, bots, and ads.  I've seen like two scroll pages of ads in a row, its nuts.  What I did not know before Joel pointed out here is that the feed I am looking at is my following feed, its only feed of people I follow in descending order.  On bluesky you get to pick your feed!!!  This feels like tweetdeck did back when we were able to run that.  You could tune in search terms and save them it was glorious.  Bluesky has some really interesting ones that you can use like popular with friends, only posts, my bangers, that have a pre defined algorithms.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://joelhooks.com/bluesky",
      "date_published": "2025-01-11T02:17:50Z",
      "date_modified": "2025-01-11T02:17:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "social",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-524/",
      "url": "https://waylonwalker.com/thought-524/",
      "title": "💭 Why You Should Game on Linux (feat. GloriousEggroll of Nobara)...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"QwpTAk_IiyU\" title=\"Why You Should Game on Linux (feat. GloriousEggroll of Nobara)\" playlabel=\"Play: Why You Should Game on Linux (feat. GloriousEggroll of Nobara)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThis man is responsible for making gaming on linux what it is today.  Such a heartfelt story to hear that reviving his dad’s machine was at the core of what drove him to do what he has done for the wider gaming on linux community.  Update on your schedule, remove all the tracking and bloatware, this is what drove him to start using linux before making it accessible for his Dad.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBut really do update, this is not your 2002 PHP box, things need updated and regular updates help the process.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"QwpTAk_IiyU\" title=\"Why You Should Game on Linux (feat. GloriousEggroll of Nobara)\" playlabel=\"Play: Why You Should Game on Linux (feat. GloriousEggroll of Nobara)\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nThis man is responsible for making gaming on linux what it is today.  Such a heartfelt story to hear that reviving his dad's machine was at the core of what drove him to do what he has done for the wider gaming on linux community.  Update on your schedule, remove all the tracking and bloatware, this is what drove him to start using linux before making it accessible for his Dad.\n\n\u003e But really do update, this is not your 2002 PHP box, things need updated and regular updates help the process.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=QwpTAk_IiyU\u0026t=28s",
      "date_published": "2025-01-11T01:38:57Z",
      "date_modified": "2025-01-11T01:38:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/postiz-file-upload/",
      "url": "https://waylonwalker.com/postiz-file-upload/",
      "title": "postiz-file-upload",
      "content_html": "\u003cp\u003eToday I learned that the docs in postiz are a bit behind, (fantastic docs btw,\nthey are to the point, and cover almost all of what you need).  The docs state\nthat you need to include an R2 bucket to handle uploads.\u003c/p\u003e\n\u003cp\u003eThis \u003ca href=\"https://github.com/gitroomhq/postiz-app/issues/322\" 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\"\u003eissue\u003c/a\u003e shows that\nmore work has been done, one of which is local storage.  The \u003ca href=\"https://docs.postiz.com/installation/docker-compose\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/docs.postiz.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/docs.postiz.com.png\" class=\"has-avatar  has-avatar-before\"\u003ecompose\nfile\u003c/a\u003e they use in the\nquick start has the required env variables to set this up.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eSTORAGE_PROVIDER\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;local\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eUPLOAD_DIRECTORY\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/uploads\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"w\"\u003e      \u003c/span\u003e\u003cspan class=\"nt\"\u003eNEXT_PUBLIC_UPLOAD_DIRECTORY\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"w\"\u003e \u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;/uploads\u0026#34;\u003c/span\u003e\u003cspan class=\"w\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003elooking into my running instance I can see my images there.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ podman \u003cspan class=\"nb\"\u003eexec\u003c/span\u003e postiz ls /uploads/2025/01/09\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e811747b3f703f5d9a7f10aff5103412ff0.jpeg\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ea221db10a76f0c414171ab417379b09ec.jpeg\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nToday I learned that the docs in postiz are a bit behind, (fantastic docs btw,\nthey are to the point, and cover almost all of what you need).  The docs state\nthat you need to include an R2 bucket to handle uploads.\n\nThis [issue](https://github.com/gitroomhq/postiz-app/issues/322) shows that\nmore work has been done, one of which is local storage.  The [compose\nfile](https://docs.postiz.com/installation/docker-compose) they use in the\nquick start has the required env variables to set this up.\n\n```yaml\n      STORAGE_PROVIDER: \"local\"\n      UPLOAD_DIRECTORY: \"/uploads\"\n      NEXT_PUBLIC_UPLOAD_DIRECTORY: \"/uploads\"\n```\n\nlooking into my running instance I can see my images there.\n\n``` bash\n⬢ [devtainer] ❯ podman exec postiz ls /uploads/2025/01/09\n811747b3f703f5d9a7f10aff5103412ff0.jpeg\na221db10a76f0c414171ab417379b09ec.jpeg\n```\n",
      "summary": "Today I learned that the docs in postiz are a bit behind, (fantastic docs btw, they are to the point, and cover almost all of what you need). The docs state...",
      "date_published": "2025-01-10T20:35:39Z",
      "date_modified": "2025-01-10T20:35:39Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "compose",
        "containers",
        "docker",
        "postiz",
        "social"
      ]
    },
    {
      "id": "https://waylonwalker.com/we-beat-trailmakers/",
      "url": "https://waylonwalker.com/we-beat-trailmakers/",
      "title": "we beat trailmakers",
      "content_html": "\u003cp\u003eToday we broke through the atmosphere in trailmakers ready for pickup from\nthose back at mission conrol.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI haven’t posted a lot of gaming content to by blog, idk why, but I think I\nam going to start, especially for the ones that are good memories with my\nson.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eToday we hit 100% of the required parts required to build the space ship and\nleave the atmosphere of the planet that the story is set in.  Trailmakers is a\ngame where you design and build your own vehicles.  The campaign mode standed\nis a story where you are in a high tech freighter ship that crash lands on a\ndistant planet.  Your crew back home can come as far as the planet your on but\ncannot break through the atmosphere.  Your job is to collect all the wreckage\nand gain all the parts required for a space ship build to take you out of the\natmosphere to meet them.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f751d33e-1829-47ea-a593-f1d940c86f4f.webp\" class=\"glightbox-link\" aria-label=\"end screen\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f751d33e-1829-47ea-a593-f1d940c86f4f.webp\" alt=\"end screen\"/ data-glightbox=\"description: end screen\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/73fed115-7d6a-4629-a9a3-be6819def314.webp\" class=\"glightbox-link\" aria-label=\"end achievement\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/73fed115-7d6a-4629-a9a3-be6819def314.webp\" alt=\"end achievement\"/ data-glightbox=\"description: end achievement\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThere were a couple really heavy salvages to gather up, this one is high in the\nfloating islands and is the cockpit fo the space ship.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7ab6954a-4dd5-4ab8-b50e-91440c89570b.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/7ab6954a-4dd5-4ab8-b50e-91440c89570b.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI thought this was a cool shot of one of our builds with the suspension fully\nsquatted out with a heavy load on the back.\u003c/p\u003e\n\u003ch2 id=\"multiple-salvages\"\u003eMultiple Salvages \u003ca href=\"#multiple-salvages\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIt took us way to long to realize that we had enough power cores to add a bunch\nof tractor beams to do multiple salvages at once. Each tractor beam only has\nthe ability to pick up one salvage at a time.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/36f1b541-e9c1-46f9-8219-e37bbed67344.webp\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-11T03-14-29-022Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/36f1b541-e9c1-46f9-8219-e37bbed67344.webp\" alt=\"screenshot-2025-01-11T03-14-29-022Z.png\"/ data-glightbox=\"description: screenshot-2025-01-11T03-14-29-022Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"some-wild-moments\"\u003eSome wild moments \u003ca href=\"#some-wild-moments\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e68cfa29-bc0b-41cc-8ae8-79ef26d1aa97.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e68cfa29-bc0b-41cc-8ae8-79ef26d1aa97.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThis clip brought both of us to curled over laughter, I wish I had recording on\nto get a full clip of it, this screenshot is the best I got.  What happened was\nmy son was being super silly and blew us up, but somehow the seat of the last\nbuild stayed in while we respawnd and our new vehicle picked it up.  Not only\nthat, but the broken seat was still usable and he was able to sit in it!\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/636f3409-b8ad-44f7-9545-9b38d0393f07.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/636f3409-b8ad-44f7-9545-9b38d0393f07.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"acheivements-status\"\u003eacheivements status \u003ca href=\"#acheivements-status\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eCurrently I am quite a ways from getting 100% of the achievements for the game.\nI think I will finish 100% of the stranded campaign because it is super fun,\nbut probably wont 100% it.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2fa177b8-d4d3-41ef-b006-67b369459175.webp\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-11T01-58-45-192Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2fa177b8-d4d3-41ef-b006-67b369459175.webp\" alt=\"screenshot-2025-01-11T01-58-45-192Z.png\"/ data-glightbox=\"description: screenshot-2025-01-11T01-58-45-192Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"im-trying-out-video\"\u003eI’m trying out video \u003ca href=\"#im-trying-out-video\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI turned on steam recording and played for a minute to test out hosting video here.\u003c/p\u003e\n\u003cp\u003e\u003cvideo src=\"https://dropper.waylonwalker.com/api/file/efd58566-2f64-47d1-8b0b-13129b60a860.mp4\" controls=\"\"\u003e\u003c/video\u003e\u003c/p\u003e\n\u003ch2 id=\"i-accidentally-entered-deep-space\"\u003eI accidentally entered deep space \u003ca href=\"#i-accidentally-entered-deep-space\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/956214ef-5f83-439b-9414-49be0c26b77a.webp\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-12T02-04-53-917Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/956214ef-5f83-439b-9414-49be0c26b77a.webp\" alt=\"screenshot-2025-01-12T02-04-53-917Z.png\"/ data-glightbox=\"description: screenshot-2025-01-12T02-04-53-917Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nToday we broke through the atmosphere in trailmakers ready for pickup from\nthose back at mission conrol.\n\n\u003e I haven't posted a lot of gaming content to by blog, idk why, but I think I\n\u003e am going to start, especially for the ones that are good memories with my\n\u003e son.\n\nToday we hit 100% of the required parts required to build the space ship and\nleave the atmosphere of the planet that the story is set in.  Trailmakers is a\ngame where you design and build your own vehicles.  The campaign mode standed\nis a story where you are in a high tech freighter ship that crash lands on a\ndistant planet.  Your crew back home can come as far as the planet your on but\ncannot break through the atmosphere.  Your job is to collect all the wreckage\nand gain all the parts required for a space ship build to take you out of the\natmosphere to meet them.\n\n![end screen](https://dropper.waylonwalker.com/api/file/f751d33e-1829-47ea-a593-f1d940c86f4f.webp)\n\n![end achievement](https://dropper.waylonwalker.com/api/file/73fed115-7d6a-4629-a9a3-be6819def314.webp)\n\nThere were a couple really heavy salvages to gather up, this one is high in the\nfloating islands and is the cockpit fo the space ship.\n\n![image](https://dropper.waylonwalker.com/api/file/7ab6954a-4dd5-4ab8-b50e-91440c89570b.webp)\n\nI thought this was a cool shot of one of our builds with the suspension fully\nsquatted out with a heavy load on the back.\n\n## Multiple Salvages\n\nIt took us way to long to realize that we had enough power cores to add a bunch\nof tractor beams to do multiple salvages at once. Each tractor beam only has\nthe ability to pick up one salvage at a time.\n\n![screenshot-2025-01-11T03-14-29-022Z.png](https://dropper.waylonwalker.com/api/file/36f1b541-e9c1-46f9-8219-e37bbed67344.webp)\n\n## Some wild moments\n\n![image](https://dropper.waylonwalker.com/api/file/e68cfa29-bc0b-41cc-8ae8-79ef26d1aa97.webp)\n\nThis clip brought both of us to curled over laughter, I wish I had recording on\nto get a full clip of it, this screenshot is the best I got.  What happened was\nmy son was being super silly and blew us up, but somehow the seat of the last\nbuild stayed in while we respawnd and our new vehicle picked it up.  Not only\nthat, but the broken seat was still usable and he was able to sit in it!\n\n![image](https://dropper.waylonwalker.com/api/file/636f3409-b8ad-44f7-9545-9b38d0393f07.webp)\n\n## acheivements status\n\nCurrently I am quite a ways from getting 100% of the achievements for the game.\nI think I will finish 100% of the stranded campaign because it is super fun,\nbut probably wont 100% it.\n\n![screenshot-2025-01-11T01-58-45-192Z.png](https://dropper.waylonwalker.com/api/file/2fa177b8-d4d3-41ef-b006-67b369459175.webp)\n\n## I'm trying out video\n\nI turned on steam recording and played for a minute to test out hosting video here.\n\n\u003cvideo src=\"https://dropper.waylonwalker.com/api/file/efd58566-2f64-47d1-8b0b-13129b60a860.mp4\" controls\u003e\u003c/video\u003e\n\n## I accidentally entered deep space\n\n![screenshot-2025-01-12T02-04-53-917Z.png](https://dropper.waylonwalker.com/api/file/956214ef-5f83-439b-9414-49be0c26b77a.webp)\n",
      "summary": "Today we broke through the atmosphere in trailmakers ready for pickup from those back at mission conrol.",
      "date_published": "2025-01-10T19:53:14Z",
      "date_modified": "2025-01-10T19:53:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "trailmakers"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-523/",
      "url": "https://waylonwalker.com/thought-523/",
      "title": "💭 V2 suddenly getting client-not-enrolled today - X API - X Deve...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://devcommunity.x.com/t/v2-suddenly-getting-client-not-enrolled-today/195456\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edevcommunity.x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eJust tried using my twitter api key for the first time in quite awhile.  Apps now need to be tied to projects in order to work.  It looks like projects are where pricing comes into play.  Thankfully they still give a free tier for doing small time things for myself.  You can really see the effect that llms have on these things though as it is 5x more expensive to read posts than to make posts currently.  Data is the new gold for these kind of companies.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://devcommunity.x.com/t/v2-suddenly-getting-client-not-enrolled-today/195456\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edevcommunity.x.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nJust tried using my twitter api key for the first time in quite awhile.  Apps now need to be tied to projects in order to work.  It looks like projects are where pricing comes into play.  Thankfully they still give a free tier for doing small time things for myself.  You can really see the effect that llms have on these things though as it is 5x more expensive to read posts than to make posts currently.  Data is the new gold for these kind of companies.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://devcommunity.x.com/t/v2-suddenly-getting-client-not-enrolled-today/195456",
      "date_published": "2025-01-10T02:56:15Z",
      "date_modified": "2025-01-10T02:56:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "twitter"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-522/",
      "url": "https://waylonwalker.com/thought-522/",
      "title": "💭 containers/podman-compose: a script to run docker-compose.yml ...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/containers/podman-compose\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/8f66dda4b1cab1bbcccf715302518ca1594b91c6fe6ee469dc371a17bb1b782a/containers/podman-compose\" alt=\"GitHub - containers/podman-compose: a script to run docker-compose.yml using podman — a script to run docker-compose.yml using podman. Contribute to containers/podman-compose development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - containers/podman-compose: a script to run docker-compose.yml using podman — a script to run docker-compose.yml using podman. Contribute to containers/podman-compose development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - containers/podman-compose: a script to run docker-compose.yml using podman\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ea script to run docker-compose.yml using podman. Contribute to containers/podman-compose development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWild that the podman-compose github readme calls out k3s as an alternative.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9326cd6f-3f27-4703-85fd-a3b16f7bdc92.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9326cd6f-3f27-4703-85fd-a3b16f7bdc92.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003ecompose definitely has its place, especially for local development on a developers machine, its so much easier to stand up and get things like hot reload up and running smooth.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/containers/podman-compose\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/8f66dda4b1cab1bbcccf715302518ca1594b91c6fe6ee469dc371a17bb1b782a/containers/podman-compose\" alt=\"GitHub - containers/podman-compose: a script to run docker-compose.yml using podman — a script to run docker-compose.yml using podman. Contribute to containers/podman-compose development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - containers/podman-compose: a script to run docker-compose.yml using podman\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003ea script to run docker-compose.yml using podman. Contribute to containers/podman-compose development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWild that the podman-compose github readme calls out k3s as an alternative.\n\n![image](https://dropper.waylonwalker.com/api/file/9326cd6f-3f27-4703-85fd-a3b16f7bdc92.webp)\n\ncompose definitely has its place, especially for local development on a developers machine, its so much easier to stand up and get things like hot reload up and running smooth.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/containers/podman-compose",
      "date_published": "2025-01-09T14:57:06Z",
      "date_modified": "2025-01-09T14:57:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/containers-podman-compose/",
      "url": "https://waylonwalker.com/containers-podman-compose/",
      "title": "⭐ containers podman-compose",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/containers/podman-compose\" 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\"\u003epodman-compose\u003c/a\u003e by \u003ca href=\"https://github.com/containers\" 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\"\u003econtainers\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003ea script to run docker-compose.yml using podman\u003c/p\u003e\n",
      "content_text": "\nThe work on [podman-compose](https://github.com/containers/podman-compose) by [containers](https://github.com/containers).\n\na script to run docker-compose.yml using podman\n",
      "summary": "The work on podman-compose by containers.",
      "date_published": "2025-01-09T14:54:36Z",
      "date_modified": "2025-01-09T14:54:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-521/",
      "url": "https://waylonwalker.com/thought-521/",
      "title": "💭 bic | Static blog generator, in bash",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bic.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ebic\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStatic blog generator, in bash\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebic · bic.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eIntereresting someone built a blog generator in bash.  it comes with normal markdown to \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e, static content, robots.txt, sitemap, rss, and tags.  It uses pandoc to take markdown to html and mustache for page templates.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bic.sh/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ebic\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStatic blog generator, in bash\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebic \u0026middot; bic.sh\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nIntereresting someone built a blog generator in bash.  it comes with normal markdown to html, static content, robots.txt, sitemap, rss, and tags.  It uses pandoc to take markdown to html and mustache for page templates.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bic.sh/",
      "date_published": "2025-01-09T14:22:47Z",
      "date_modified": "2025-01-09T14:22:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "bash",
        "blog",
        "cli",
        "dev",
        "markdown",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-520/",
      "url": "https://waylonwalker.com/thought-520/",
      "title": "💭 Animate to height: auto; (and other intrinsic sizing keywords)...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://developer.chrome.com/docs/css-ui/animate-to-height-auto/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://developer.chrome.com/static/docs/css-ui/animate-to-height-auto/image/animate-to-height-auto.png\" alt=\"Animate to height: auto; (and other intrinsic sizing keywords) in CSS  |  CSS and UI  |  Chrome for Developers — Animate to and from intrinsic sizing keywords with `interpolate-size` and `calc-size()`\" loading=\"lazy\"/ data-glightbox=\"description: Animate to height: auto; (and other intrinsic sizing keywords) in CSS  |  CSS and UI  |  Chrome for Developers — Animate to and from intrinsic sizing keywords with `interpolate-size` and `calc-size()`\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAnimate to height: auto; (and other intrinsic sizing keywords) in CSS  |  CSS and UI  |  Chrome for Developers\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAnimate to and from intrinsic sizing keywords with `interpolate-size` and `calc-size()`\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChrome for Developers · developer.chrome.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eCss is getting so good, new things like interpolate-size are making things that use to require some deep expertise and hacks intuitive and easy.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c\"\u003e/* Opt-in the whole page to interpolate sizes to/from keywords */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\u003cspan class=\"nd\"\u003eroot\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003einterpolate-size\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003eallow-keywords\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"c\"\u003e/* 👈 */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://developer.chrome.com/docs/css-ui/animate-to-height-auto/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://developer.chrome.com/static/docs/css-ui/animate-to-height-auto/image/animate-to-height-auto.png\" alt=\"Animate to height: auto; (and other intrinsic sizing keywords) in CSS  |  CSS and UI  |  Chrome for Developers — Animate to and from intrinsic sizing keywords with `interpolate-size` and `calc-size()`\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAnimate to height: auto; (and other intrinsic sizing keywords) in CSS  |  CSS and UI  |  Chrome for Developers\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAnimate to and from intrinsic sizing keywords with `interpolate-size` and `calc-size()`\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChrome for Developers \u0026middot; developer.chrome.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nCss is getting so good, new things like interpolate-size are making things that use to require some deep expertise and hacks intuitive and easy.\n\n``` css\n/* Opt-in the whole page to interpolate sizes to/from keywords */\n:root {\n    interpolate-size: allow-keywords; /* 👈 */\n}\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://developer.chrome.com/docs/css-ui/animate-to-height-auto/",
      "date_published": "2025-01-09T14:20:25Z",
      "date_modified": "2025-01-09T14:20:25Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "css",
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-519/",
      "url": "https://waylonwalker.com/thought-519/",
      "title": "💭 awesome-cursorrules/rules/py-fast-api/.cursorrules at main · P...",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules\" class=\"glightbox-link\" aria-label=\"https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules\" alt=\"https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules\"/ data-glightbox=\"description: https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eLooks like a great start to a rules file for \u003ca href=\"/fastapi/\" class=\"glossary-term\" title=\"FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.\"\u003efastapi\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n\u003cli\u003ePlace the happy path last in the function for improved readability.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI have never heard anyone say this.  It feels weird to me.  The other early return, find and handle errors early all make sense to me, but happy path last is new to me.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules](/static/https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules)\n\nLooks like a great start to a rules file for fastapi.\n\n\u003e - Place the happy path last in the function for improved readability.\n\nI have never heard anyone say this.  It feels weird to me.  The other early return, find and handle errors early all make sense to me, but happy path last is new to me.\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/PatrickJS/awesome-cursorrules/blob/main/rules/py-fast-api/.cursorrules",
      "date_published": "2025-01-09T14:03:12Z",
      "date_modified": "2025-01-09T14:03:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agentic",
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-518/",
      "url": "https://waylonwalker.com/thought-518/",
      "title": "💭 Generate Custom .cursorrules for Your Project Based on Communi...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://egghead.io/generate-custom-cursorrules-for-your-project-based-on-community-examples~eimq2\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://builder.egghead.io/api/og?resource=generate-custom-cursorrules-for-your-project-based-on-community-examples~eimq2\" alt=\"Generate Custom .cursorrules for Your Project Based on Community Examples — expert led courses for front-end web developers and teams that want to level up through straightforward and concise lessons on the most useful tools available.\" loading=\"lazy\"/ data-glightbox=\"description: Generate Custom .cursorrules for Your Project Based on Community Examples — expert led courses for front-end web developers and teams that want to level up through straightforward and concise lessons on the most useful tools available.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGenerate Custom .cursorrules for Your Project Based on Community Examples\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eexpert led courses for front-end web developers and teams that want to level up through straightforward and concise lessons on the most useful tools available.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eegghead · egghead.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eReally interesting way to generate a rules file for agentic workflows based on your current repo.  John uses gitingest here, looks like a fantastic tool, but probably not useful for most private repos.  I’m sure you can replicate the same thing in a private repo wtih a small amount of effort the few times you need to do it.  gitingest looks like a great way to pull in some extra context for some open source dependencies that you have though.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://egghead.io/generate-custom-cursorrules-for-your-project-based-on-community-examples~eimq2\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://builder.egghead.io/api/og?resource=generate-custom-cursorrules-for-your-project-based-on-community-examples~eimq2\" alt=\"Generate Custom .cursorrules for Your Project Based on Community Examples — expert led courses for front-end web developers and teams that want to level up through straightforward and concise lessons on the most useful tools available.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGenerate Custom .cursorrules for Your Project Based on Community Examples\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eexpert led courses for front-end web developers and teams that want to level up through straightforward and concise lessons on the most useful tools available.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eegghead \u0026middot; egghead.io\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nReally interesting way to generate a rules file for agentic workflows based on your current repo.  John uses gitingest here, looks like a fantastic tool, but probably not useful for most private repos.  I'm sure you can replicate the same thing in a private repo wtih a small amount of effort the few times you need to do it.  gitingest looks like a great way to pull in some extra context for some open source dependencies that you have though.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://egghead.io/generate-custom-cursorrules-for-your-project-based-on-community-examples~eimq2",
      "date_published": "2025-01-09T13:53:40Z",
      "date_modified": "2025-01-09T13:53:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "agentic",
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-517/",
      "url": "https://waylonwalker.com/thought-517/",
      "title": "💭 cyclotruc/gitingest: Replace 'hub' with 'ingest' in any github...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/cyclotruc/gitingest\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/cfed6a23a30a854c357f8c47f5dd9641ce2499c01ca1527def9b6be5423d30da/coderamp-labs/gitingest\" alt=\"GitHub - coderamp-labs/gitingest: Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase — Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase  - coderamp-labs/gitingest\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - coderamp-labs/gitingest: Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase — Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase  - coderamp-labs/gitingest\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - coderamp-labs/gitingest: Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReplace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase  - coderamp-labs/gitingest\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eGitingest has a python package on pypi that you can run with uvx, and it accepts the same arguments as the web version, right in your terminal\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e⬢ \u003cspan class=\"o\"\u003e[\u003c/span\u003edevtainer\u003cspan class=\"o\"\u003e]\u003c/span\u003e ❯ uvx gitingest --help\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUsage: gitingest \u003cspan class=\"o\"\u003e[\u003c/span\u003eOPTIONS\u003cspan class=\"o\"\u003e]\u003c/span\u003e SOURCE\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  Analyze a directory and create a text dump of its contents.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eOptions:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  -o, --output TEXT           Output file path \u003cspan class=\"o\"\u003e(\u003c/span\u003edefault: \u0026lt;repo_name\u0026gt;.txt in\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                              current directory\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  -s, --max-size INTEGER      Maximum file size to process in bytes\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  -e, --exclude-pattern TEXT  Patterns to exclude\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  -i, --include-pattern TEXT  Patterns to include\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  --help                      Show this message and exit.\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/cyclotruc/gitingest\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/cfed6a23a30a854c357f8c47f5dd9641ce2499c01ca1527def9b6be5423d30da/coderamp-labs/gitingest\" alt=\"GitHub - coderamp-labs/gitingest: Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase — Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase  - coderamp-labs/gitingest\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - coderamp-labs/gitingest: Replace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReplace \u0026#39;hub\u0026#39; with \u0026#39;ingest\u0026#39; in any GitHub URL to get a prompt-friendly extract of a codebase  - coderamp-labs/gitingest\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGitingest has a python package on pypi that you can run with uvx, and it accepts the same arguments as the web version, right in your terminal\n\n\n``` bash\n⬢ [devtainer] ❯ uvx gitingest --help\nUsage: gitingest [OPTIONS] SOURCE\n\n  Analyze a directory and create a text dump of its contents.\n\nOptions:\n  -o, --output TEXT           Output file path (default: \u003crepo_name\u003e.txt in\n                              current directory)\n  -s, --max-size INTEGER      Maximum file size to process in bytes\n  -e, --exclude-pattern TEXT  Patterns to exclude\n  -i, --include-pattern TEXT  Patterns to include\n  --help                      Show this message and exit.\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/cyclotruc/gitingest",
      "date_published": "2025-01-09T13:46:33Z",
      "date_modified": "2025-01-09T13:46:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "python",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/cyclotruc-gitingest/",
      "url": "https://waylonwalker.com/cyclotruc-gitingest/",
      "title": "⭐ cyclotruc gitingest",
      "content_html": "\u003cp\u003eI’m really excited about \u003ca href=\"https://github.com/cyclotruc/gitingest\" 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\"\u003egitingest\u003c/a\u003e, an amazing project by \u003ca href=\"https://github.com/cyclotruc\" 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\"\u003ecyclotruc\u003c/a\u003e. It’s worth exploring!\u003c/p\u003e\n\u003cp\u003eReplace ‘hub’ with ‘ingest’ in any github url to get a prompt-friendly extract of a codebase\u003c/p\u003e\n",
      "content_text": "\nI'm really excited about [gitingest](https://github.com/cyclotruc/gitingest), an amazing project by [cyclotruc](https://github.com/cyclotruc). It's worth exploring!\n\nReplace 'hub' with 'ingest' in any github url to get a prompt-friendly extract of a codebase\n",
      "summary": "I'm really excited about gitingest, an amazing project by cyclotruc. It's worth exploring!",
      "date_published": "2025-01-09T13:41:27Z",
      "date_modified": "2025-01-09T13:41:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/coderamp-labs-gitingest/",
      "url": "https://waylonwalker.com/coderamp-labs-gitingest/",
      "title": "⭐ coderamp-labs gitingest",
      "content_html": "\u003cp\u003eLooking for inspiration? \u003ca href=\"https://github.com/coderamp-labs/gitingest\" 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\"\u003egitingest\u003c/a\u003e by \u003ca href=\"https://github.com/coderamp-labs\" 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\"\u003ecoderamp-labs\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eReplace ‘hub’ with ‘ingest’ in any github url to get a prompt-friendly extract of a codebase\u003c/p\u003e\n",
      "content_text": "\nLooking for inspiration? [gitingest](https://github.com/coderamp-labs/gitingest) by [coderamp-labs](https://github.com/coderamp-labs).\n\nReplace 'hub' with 'ingest' in any github url to get a prompt-friendly extract of a codebase\n",
      "summary": "Looking for inspiration? gitingest by coderamp-labs.",
      "date_published": "2025-01-09T13:41:27Z",
      "date_modified": "2025-01-09T13:41:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-516/",
      "url": "https://waylonwalker.com/thought-516/",
      "title": "💭 Gitingest",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://gitingest.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"/static/og-image.png\" alt=\"Gitingest — Replace\" loading=\"lazy\"/ data-glightbox=\"description: Gitingest — Replace\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitingest\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReplace \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003egitingest.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eReplace \u003cstrong\u003ehub\u003c/strong\u003e with \u003cstrong\u003eingest\u003c/strong\u003e in any \u003cstrong\u003egithub\u003c/strong\u003e and get a prompt friendly codebase ready to feed into any llm.  It combines the entire codebase, based on a gitignore style glob that you pass in, into a single TXT file.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://gitingest.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"/static/og-image.png\" alt=\"Gitingest — Replace\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitingest\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eReplace \u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003egitingest.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nReplace **hub** with **ingest** in any **github** and get a prompt friendly codebase ready to feed into any llm.  It combines the entire codebase, based on a gitignore style glob that you pass in, into a single TXT file.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://gitingest.com/",
      "date_published": "2025-01-09T13:40:41Z",
      "date_modified": "2025-01-09T13:40:41Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "llm",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/pinjasaur-bic/",
      "url": "https://waylonwalker.com/pinjasaur-bic/",
      "title": "⭐ Pinjasaur bic",
      "content_html": "\u003cp\u003eCheck out \u003ca href=\"https://github.com/Pinjasaur/bic\" 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\"\u003ebic\u003c/a\u003e by \u003ca href=\"https://github.com/Pinjasaur\" 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\"\u003ePinjasaur\u003c/a\u003e. It’s a well-crafted project with great potential.\u003c/p\u003e\n\u003cp\u003eStatic blog generator, in bash\u003c/p\u003e\n",
      "content_text": "\nCheck out [bic](https://github.com/Pinjasaur/bic) by [Pinjasaur](https://github.com/Pinjasaur). It's a well-crafted project with great potential.\n\nStatic blog generator, in bash\n",
      "summary": "Check out bic by Pinjasaur. It's a well-crafted project with great potential.",
      "date_published": "2025-01-09T02:25:48Z",
      "date_modified": "2025-01-09T02:25:48Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-515/",
      "url": "https://waylonwalker.com/thought-515/",
      "title": "💭 olimorris/codecompanion.nvim: ✨ AI-powered coding, seamlessly ...",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/olimorris/codecompanion.nvim\" class=\"glightbox-link\" aria-label=\"https://github.com/olimorris/codecompanion.nvim\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/olimorris/codecompanion.nvim\" alt=\"https://github.com/olimorris/codecompanion.nvim\"/ data-glightbox=\"description: https://github.com/olimorris/codecompanion.nvim\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eDefinitely need to give codecompanion.nvim a try, it looks like a competitor to windsurf but in nvim.  It looks so feature complete that its hard to grasp all of what it does.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/olimorris/codecompanion.nvim](/static/https://github.com/olimorris/codecompanion.nvim)\n\nDefinitely need to give codecompanion.nvim a try, it looks like a competitor to windsurf but in nvim.  It looks so feature complete that its hard to grasp all of what it does.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/olimorris/codecompanion.nvim",
      "date_published": "2025-01-09T02:18:50Z",
      "date_modified": "2025-01-09T02:18:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-514/",
      "url": "https://waylonwalker.com/thought-514/",
      "title": "💭 Cracking the Code | Open Sauce 2024 - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"9vSiP_ftyuQ\" title=\"Cracking the Code | Open Sauce 2024\" playlabel=\"Play: Cracking the Code | Open Sauce 2024\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eGreat panel of software folks at open sauce.  It was interesting hearing from all these creators from the perspective of an open sauce panel.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"9vSiP_ftyuQ\" title=\"Cracking the Code | Open Sauce 2024\" playlabel=\"Play: Cracking the Code | Open Sauce 2024\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nGreat panel of software folks at open sauce.  It was interesting hearing from all these creators from the perspective of an open sauce panel.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=9vSiP_ftyuQ",
      "date_published": "2025-01-08T21:08:08Z",
      "date_modified": "2025-01-08T21:08:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-513/",
      "url": "https://waylonwalker.com/thought-513/",
      "title": "💭 WaylonWalker/nvim-manager: manage dotfiles with nvim_appname",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2\" class=\"glightbox-link\" aria-label=\"https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2\" alt=\"https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2\"/ data-glightbox=\"description: https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eNew release out for nvim-manager that supports installing pre-configured distros.  It’s such a breeze to install these now, its been fun to go through each of them.  The currently included distros are.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLazyVim\u003c/li\u003e\n\u003cli\u003eAstroVim\u003c/li\u003e\n\u003cli\u003ekickstart\u003c/li\u003e\n\u003cli\u003eNvChad\u003c/li\u003e\n\u003cli\u003eLunarVim\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2](/static/https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2)\n\nNew release out for nvim-manager that supports installing pre-configured distros.  It's such a breeze to install these now, its been fun to go through each of them.  The currently included distros are.\n\n* LazyVim\n* AstroVim\n* kickstart\n* NvChad\n* LunarVim\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/nvim-manager/releases/tag/v0.0.2",
      "date_published": "2025-01-08T17:11:34Z",
      "date_modified": "2025-01-08T17:11:34Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-512/",
      "url": "https://waylonwalker.com/thought-512/",
      "title": "💭 Releases · WaylonWalker/nvim-manager",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/nvim-manager/releases\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/288ea3d9a89631a1c891efaa01f6a0511d367d92e445d5a0b6036aab9c640567/WaylonWalker/nvim-manager\" alt=\"Releases · WaylonWalker/nvim-manager — manage dotfiles with nvim_appname. Contribute to WaylonWalker/nvim-manager development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: Releases · WaylonWalker/nvim-manager — manage dotfiles with nvim_appname. Contribute to WaylonWalker/nvim-manager development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReleases · WaylonWalker/nvim-manager\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003emanage dotfiles with nvim_appname. Contribute to WaylonWalker/nvim-manager development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eFirst release of \u003ccode\u003envim-manager\u003c/code\u003e is out. Your dotfiles change a lot, sometimes it’s hard to manage all of the places you have installed them and potentially made hand edits to. nvim-manager allows you to easily make static releases of your dotfiles, and keep your nvim install from breaking by leveraging NVIM_APPNAME and pinned releases of your dotfiles stored in ~/.config. In this directory you might have many nvim configurations installed, nvim-manager automates the process of installing and updating from your dotfiles, while keeping previous pinned versions untouched.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/WaylonWalker/nvim-manager/releases\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/288ea3d9a89631a1c891efaa01f6a0511d367d92e445d5a0b6036aab9c640567/WaylonWalker/nvim-manager\" alt=\"Releases · WaylonWalker/nvim-manager — manage dotfiles with nvim_appname. Contribute to WaylonWalker/nvim-manager development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eReleases · WaylonWalker/nvim-manager\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003emanage dotfiles with nvim_appname. Contribute to WaylonWalker/nvim-manager development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nFirst release of `nvim-manager` is out. Your dotfiles change a lot, sometimes it's hard to manage all of the places you have installed them and potentially made hand edits to. nvim-manager allows you to easily make static releases of your dotfiles, and keep your nvim install from breaking by leveraging NVIM_APPNAME and pinned releases of your dotfiles stored in ~/.config. In this directory you might have many nvim configurations installed, nvim-manager automates the process of installing and updating from your dotfiles, while keeping previous pinned versions untouched.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/WaylonWalker/nvim-manager/releases",
      "date_published": "2025-01-08T03:09:30Z",
      "date_modified": "2025-01-08T03:09:30Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-511/",
      "url": "https://waylonwalker.com/thought-511/",
      "title": "💭 URL escape codes",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm\" class=\"glightbox-link\" aria-label=\"https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm\" alt=\"https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm\"/ data-glightbox=\"description: https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eNice list of url escape codes.  I did not actually know that to get a literal sequence like %2D you can use $2D.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm](/static/https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm)\n\nNice list of url escape codes.  I did not actually know that to get a literal sequence like %2D you can use $2D.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://docs.microfocus.com/OMi/10.62/Content/OMi/ExtGuide/ExtApps/URL_encoding.htm",
      "date_published": "2025-01-07T02:03:16Z",
      "date_modified": "2025-01-07T02:03:16Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-510/",
      "url": "https://waylonwalker.com/thought-510/",
      "title": "💭 GitHub - ngalaiko/tree-sitter-go-template: Golang template gra...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/ngalaiko/tree-sitter-go-template\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/d2cfdb7a2039f6a25b30519f20b54d0e31c8a3515aa81111420bb9807d9734bc/ngalaiko/tree-sitter-go-template\" alt=\"GitHub - ngalaiko/tree-sitter-go-template: Golang template grammar for tree-sitter — Golang template grammar for tree-sitter. Contribute to ngalaiko/tree-sitter-go-template development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - ngalaiko/tree-sitter-go-template: Golang template grammar for tree-sitter — Golang template grammar for tree-sitter. Contribute to ngalaiko/tree-sitter-go-template development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - ngalaiko/tree-sitter-go-template: Golang template grammar for tree-sitter\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eGolang template grammar for tree-sitter. Contribute to ngalaiko/tree-sitter-go-template development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis setup fixed my nvim syntax highlighting in helm templates.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/ngalaiko/tree-sitter-go-template\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/d2cfdb7a2039f6a25b30519f20b54d0e31c8a3515aa81111420bb9807d9734bc/ngalaiko/tree-sitter-go-template\" alt=\"GitHub - ngalaiko/tree-sitter-go-template: Golang template grammar for tree-sitter — Golang template grammar for tree-sitter. Contribute to ngalaiko/tree-sitter-go-template development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - ngalaiko/tree-sitter-go-template: Golang template grammar for tree-sitter\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eGolang template grammar for tree-sitter. Contribute to ngalaiko/tree-sitter-go-template development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis setup fixed my nvim syntax highlighting in helm templates.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/ngalaiko/tree-sitter-go-template",
      "date_published": "2025-01-06T18:49:13Z",
      "date_modified": "2025-01-06T18:49:13Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "helm",
        "kubernetes",
        "neovim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-509/",
      "url": "https://waylonwalker.com/thought-509/",
      "title": "💭 imagegenius/docker-immich: Monolithic (Single) Docker Containe...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/imagegenius/docker-immich/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/e1d9e80a3c64d9ce290b5b052066b50b82cd68db427935ee8096c69b7bca5c36/imagegenius/docker-immich\" alt=\"GitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich — Monolithic (Single) Docker Container for Immich. Contribute to imagegenius/docker-immich development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich — Monolithic (Single) Docker Container for Immich. Contribute to imagegenius/docker-immich development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMonolithic (Single) Docker Container for Immich. Contribute to imagegenius/docker-immich development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eimagegenius has made an immich all in one setup that looks much easier to use than immich.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/imagegenius/docker-immich/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/e1d9e80a3c64d9ce290b5b052066b50b82cd68db427935ee8096c69b7bca5c36/imagegenius/docker-immich\" alt=\"GitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich — Monolithic (Single) Docker Container for Immich. Contribute to imagegenius/docker-immich development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - imagegenius/docker-immich: Monolithic (Single) Docker Container for Immich\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMonolithic (Single) Docker Container for Immich. Contribute to imagegenius/docker-immich development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nimagegenius has made an immich all in one setup that looks much easier to use than immich.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/imagegenius/docker-immich/",
      "date_published": "2025-01-06T14:44:08Z",
      "date_modified": "2025-01-06T14:44:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "self-hosted",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-508/",
      "url": "https://waylonwalker.com/thought-508/",
      "title": "💭 Owning It · Matthias Ott",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://matthiasott.com/notes/owning-it\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://matthiasott.com//assets/pictures/_twitterimage/owning-it_2025-01-06-002955_syir.jpg\" alt=\"Owning It · Matthias Ott — Owning your content and platform means true independence on the web. Why it matters more than ever for creators.\" loading=\"lazy\"/ data-glightbox=\"description: Owning It · Matthias Ott — Owning your content and platform means true independence on the web. Why it matters more than ever for creators.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOwning It · Matthias Ott\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOwning your content and platform means true independence on the web. Why it matters more than ever for creators.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eMatthias Ott – Web Design Engineer · matthiasott.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI can say I had the same kind of feelings when I first saw something called “Own Your Web” being run in Buttondown.  I totally get it.  It takes time and effort to build your own stuff, email sending is hard, not done right ends you in the spam folder.  There is something about the name though that I think needs to set an example and \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself host\u003c/a\u003e as much as it possibly can.\u003c/p\u003e\n\u003cp\u003eThe changelog has covered this several times, do they need to go to the crazy lengths they do to run their site, no probably not, but it keeps them in the loop.  They are using the tech they talk about in a very real and production critical way to run the show.\u003c/p\u003e\n\u003cp\u003eCant wait to see more from ownyourweb.site\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://matthiasott.com/notes/owning-it\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://matthiasott.com//assets/pictures/_twitterimage/owning-it_2025-01-06-002955_syir.jpg\" alt=\"Owning It · Matthias Ott — Owning your content and platform means true independence on the web. Why it matters more than ever for creators.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOwning It · Matthias Ott\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOwning your content and platform means true independence on the web. Why it matters more than ever for creators.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eMatthias Ott – Web Design Engineer \u0026middot; matthiasott.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI can say I had the same kind of feelings when I first saw something called \"Own Your Web\" being run in Buttondown.  I totally get it.  It takes time and effort to build your own stuff, email sending is hard, not done right ends you in the spam folder.  There is something about the name though that I think needs to set an example and self host as much as it possibly can.  \n\nThe changelog has covered this several times, do they need to go to the crazy lengths they do to run their site, no probably not, but it keeps them in the loop.  They are using the tech they talk about in a very real and production critical way to run the show.\n\nCant wait to see more from ownyourweb.site\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://matthiasott.com/notes/owning-it",
      "date_published": "2025-01-06T13:23:23Z",
      "date_modified": "2025-01-06T13:23:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-507/",
      "url": "https://waylonwalker.com/thought-507/",
      "title": "💭 The weirdest controller I've ever used",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"OrucAJknMys\" title=\"The Weirdest controller I\u0026#39;ve ever Used.\" playlabel=\"Play: The Weirdest controller I\u0026#39;ve ever Used.\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eGyroscope better than a mouse??  Nerd nest really sells how having two gyros in the way they have done for noise cancelling changes the game on it, and makes it a contender to replace a mouse.\u003c/p\u003e\n\u003cp\u003eIt really makes me want to try it.  I love how repairable this controller looks.  I’ve got to imagine that the fact that it comes as a kit, and all the parts are available that this hits S tier repairability.  My current controller of choice is a PS5 and I’ve had stick issues I wish I could fix.\u003c/p\u003e\n\u003cp\u003eNo analog triggers, I’m out.  Maybe they will make it an option in the future idk.  I don’t play shooters where I need a hair trigger, this won’t work on session or driving games.\u003c/p\u003e\n\u003cp\u003emicro usb, seriously, that kinda kills it for me too.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eedit\u003c/strong\u003e I looked on their website and they have usb c in the latest version\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"OrucAJknMys\" title=\"The Weirdest controller I\u0026#39;ve ever Used.\" playlabel=\"Play: The Weirdest controller I\u0026#39;ve ever Used.\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nGyroscope better than a mouse??  Nerd nest really sells how having two gyros in the way they have done for noise cancelling changes the game on it, and makes it a contender to replace a mouse.\n\nIt really makes me want to try it.  I love how repairable this controller looks.  I've got to imagine that the fact that it comes as a kit, and all the parts are available that this hits S tier repairability.  My current controller of choice is a PS5 and I've had stick issues I wish I could fix.\n\nNo analog triggers, I'm out.  Maybe they will make it an option in the future idk.  I don't play shooters where I need a hair trigger, this won't work on session or driving games.\n\nmicro usb, seriously, that kinda kills it for me too.  \n\n**edit** I looked on their website and they have usb c in the latest version\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=OrucAJknMys",
      "date_published": "2025-01-04T17:07:40Z",
      "date_modified": "2025-01-04T17:07:40Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "game",
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-506/",
      "url": "https://waylonwalker.com/thought-506/",
      "title": "💭 Postiz: The All-in-One Social Media Management Tool",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://postiz.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cms.postiz.com/wp-content/uploads/2024/06/OG-1-1024x538.png\" alt=\"Postiz: The All-in-One agentic social media scheduling tool — Streamline your social media with Postiz. Schedule posts, analyze performance, and manage all accounts in one place.\" loading=\"lazy\"/ data-glightbox=\"description: Postiz: The All-in-One agentic social media scheduling tool — Streamline your social media with Postiz. Schedule posts, analyze performance, and manage all accounts in one place.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePostiz: The All-in-One agentic social media scheduling tool\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStreamline your social media with Postiz. Schedule posts, analyze performance, and manage all accounts in one place.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePostiz · postiz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003epostiz looks like a very polished way to automate and schedule posts to all the social services.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://postiz.com/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cms.postiz.com/wp-content/uploads/2024/06/OG-1-1024x538.png\" alt=\"Postiz: The All-in-One agentic social media scheduling tool — Streamline your social media with Postiz. Schedule posts, analyze performance, and manage all accounts in one place.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ePostiz: The All-in-One agentic social media scheduling tool\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eStreamline your social media with Postiz. Schedule posts, analyze performance, and manage all accounts in one place.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ePostiz \u0026middot; postiz.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\npostiz looks like a very polished way to automate and schedule posts to all the social services.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://postiz.com/",
      "date_published": "2025-01-04T15:39:27Z",
      "date_modified": "2025-01-04T15:39:27Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "marketing",
        "social",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-505/",
      "url": "https://waylonwalker.com/thought-505/",
      "title": "💭 gitroomhq/postiz-helmchart: Helm for Postiz",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/gitroomhq/postiz-helmchart\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://opengraph.githubassets.com/31d2afed8816c39d3c96c166a9b66790610e86b994524ad0c48957223d9efeef/gitroomhq/postiz-helmchart\" alt=\"GitHub - gitroomhq/postiz-helmchart: Helm for Postiz — Helm for Postiz. Contribute to gitroomhq/postiz-helmchart development by creating an account on GitHub.\" loading=\"lazy\"/ data-glightbox=\"description: GitHub - gitroomhq/postiz-helmchart: Helm for Postiz — Helm for Postiz. Contribute to gitroomhq/postiz-helmchart development by creating an account on GitHub.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - gitroomhq/postiz-helmchart: Helm for Postiz\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHelm for Postiz. Contribute to gitroomhq/postiz-helmchart development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub · github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eReminder to myself, look into self hosting postiz with this helm chart later.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://github.com/gitroomhq/postiz-helmchart\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://opengraph.githubassets.com/31d2afed8816c39d3c96c166a9b66790610e86b994524ad0c48957223d9efeef/gitroomhq/postiz-helmchart\" alt=\"GitHub - gitroomhq/postiz-helmchart: Helm for Postiz — Helm for Postiz. Contribute to gitroomhq/postiz-helmchart development by creating an account on GitHub.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGitHub - gitroomhq/postiz-helmchart: Helm for Postiz\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHelm for Postiz. Contribute to gitroomhq/postiz-helmchart development by creating an account on GitHub.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eGitHub \u0026middot; github.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nReminder to myself, look into self hosting postiz with this helm chart later.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/gitroomhq/postiz-helmchart",
      "date_published": "2025-01-04T15:36:10Z",
      "date_modified": "2025-01-04T15:36:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-503/",
      "url": "https://waylonwalker.com/thought-503/",
      "title": "💭 Realign – Chris Coyier",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/01/03/realign/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJ0eHQiOiJSZWFsaWduIiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.MbeAu1AeMezY52RJjFG9lceg8PN8Y3YjvU4J6PtSV3EMQ\" alt=\"Realign — I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…\" loading=\"lazy\"/ data-glightbox=\"description: Realign — I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRealign\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier · chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eChris Coyier had a small re-align on his site, some good nuggets in here.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI like the idea of having a photo of myself prominently on the site, so you know who you’re dealing with here.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI really like this after thinking about it and I think I am going to make sure I get my face back on my posts.  I do have my 8bit style pixel art image of me that I use on social media, but no real picture.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI feel like a lot of people redesign their entire website when it’s time to update to the latest list of social networks and I’m no different. Once you touch it you gotta keep going.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eI can totally relate to this, once you open the thing, you get the build tools greased up, and your confidence high that re-deploying isn’t going to mess something up, I tend to start digging in to other things.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://chriscoyier.net/2025/01/03/realign/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://jetpack.com/redirect/?source=sigenerate\u0026amp;query=t%3DeyJ0eHQiOiJSZWFsaWduIiwidGVtcGxhdGUiOiJmdWxsc2NyZWVuIiwiYmxvZ19pZCI6NzQwNzQyNDh9.MbeAu1AeMezY52RJjFG9lceg8PN8Y3YjvU4J6PtSV3EMQ\" alt=\"Realign — I just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eRealign\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eI just popped out a realign of the ol’ personal website. I only say realign as I didn’t rethink every single detail of the thing. I’d say probably 40% of the original HTML and CSS…\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eChris Coyier \u0026middot; chriscoyier.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nChris Coyier had a small re-align on his site, some good nuggets in here.\n\n\u003e I like the idea of having a photo of myself prominently on the site, so you know who you’re dealing with here.\n\nI really like this after thinking about it and I think I am going to make sure I get my face back on my posts.  I do have my 8bit style pixel art image of me that I use on social media, but no real picture.\n\n\u003e  I feel like a lot of people redesign their entire website when it’s time to update to the latest list of social networks and I’m no different. Once you touch it you gotta keep going.\n\nI can totally relate to this, once you open the thing, you get the build tools greased up, and your confidence high that re-deploying isn't going to mess something up, I tend to start digging in to other things.\n\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://chriscoyier.net/2025/01/03/realign/",
      "date_published": "2025-01-04T14:25:02Z",
      "date_modified": "2025-01-04T14:25:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-502/",
      "url": "https://waylonwalker.com/thought-502/",
      "title": "💭 About Me – Harry Roberts – Web Performance Consultant",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://csswizardry.com/about/#section:colophon\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/csswizardry.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/csswizardry.com.png\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAbout Harry Roberts – CSS Wizardry\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecsswizardry.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’ve only recently learned what colophon means, and I really like to read through site that use it.  If you don’t know its about how the site is built.  I’ve always liked peeking under the hood of things to understand how they work, it’s what turned me towards an engineering degree.\u003c/p\u003e\n\u003cp\u003eI love how he mentions that he chose the name when he was 17 and he is stuck with it.  I particularly like the name, it has something special to it.  Hats off to you for doing something that has lasted so long for you.  I fully understand though, I have projects that I made a year ago that I think why did I name it that.  At the same time when I try to think of a name I end up with the I don’t have anything good and I’d rather build the thing so fuck it, its going to be what it is.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://csswizardry.com/about/#section:colophon\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAbout Harry Roberts – CSS Wizardry\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecsswizardry.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI've only recently learned what colophon means, and I really like to read through site that use it.  If you don't know its about how the site is built.  I've always liked peeking under the hood of things to understand how they work, it's what turned me towards an engineering degree.\n\nI love how he mentions that he chose the name when he was 17 and he is stuck with it.  I particularly like the name, it has something special to it.  Hats off to you for doing something that has lasted so long for you.  I fully understand though, I have projects that I made a year ago that I think why did I name it that.  At the same time when I try to think of a name I end up with the I don't have anything good and I'd rather build the thing so fuck it, its going to be what it is.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://csswizardry.com/about/#section:colophon",
      "date_published": "2025-01-04T04:14:00Z",
      "date_modified": "2025-01-04T04:14:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-501/",
      "url": "https://waylonwalker.com/thought-501/",
      "title": "💭 Using Obsidian as a Gaming Backlog Library",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bryanhogan.com/blog/obsidian-gaming-backlog\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://bryanhogan.com/images/Bryan-Hogan-Preview.png\" alt=\"Using Obsidian as a Gaming Backlog Library — How to use Obsidian as a gaming backlog library. Get a long-lasting overview of games you want to and have played.\" loading=\"lazy\"/ data-glightbox=\"description: Using Obsidian as a Gaming Backlog Library — How to use Obsidian as a gaming backlog library. Get a long-lasting overview of games you want to and have played.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eUsing Obsidian as a Gaming Backlog Library\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHow to use Obsidian as a gaming backlog library. Get a long-lasting overview of games you want to and have played.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBryan Hogan · bryanhogan.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eVery interesting way to catalog games, I need to make a catalog of mine, I’ll probably start adding some blog entries for games I’m in and have completed.  Wonder if there is a way to hook into steam with python to get achievements and progress live.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bryanhogan.com/blog/obsidian-gaming-backlog\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://bryanhogan.com/images/Bryan-Hogan-Preview.png\" alt=\"Using Obsidian as a Gaming Backlog Library — How to use Obsidian as a gaming backlog library. Get a long-lasting overview of games you want to and have played.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eUsing Obsidian as a Gaming Backlog Library\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHow to use Obsidian as a gaming backlog library. Get a long-lasting overview of games you want to and have played.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBryan Hogan \u0026middot; bryanhogan.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nVery interesting way to catalog games, I need to make a catalog of mine, I'll probably start adding some blog entries for games I'm in and have completed.  Wonder if there is a way to hook into steam with python to get achievements and progress live.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bryanhogan.com/blog/obsidian-gaming-backlog",
      "date_published": "2025-01-03T22:59:05Z",
      "date_modified": "2025-01-03T22:59:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-500/",
      "url": "https://waylonwalker.com/thought-500/",
      "title": "💭 Harry Roberts: \"📡 I’ve been writing a lot lately. I’ve also du...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/csswizardry.com/post/3lckq4qo6zs22\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:52up7cndgdslkpxfrxb3kghh/bafkreiggbvzqgtieuxek4nfspovxuptd7762coyawrgmsx7c6fmscrvjru\" alt=\"Harry Roberts (@csswizardry.com) — 📡 I’ve been writing a lot lately. I’ve also dusted off my RSS reader. Send me your feeds! Mine is at csswizardry.com/feed.xml\nhttps://csswizardry.com/feed.xml\" loading=\"lazy\"/ data-glightbox=\"description: Harry Roberts (@csswizardry.com) — 📡 I’ve been writing a lot lately. I’ve also dusted off my RSS reader. Send me your feeds! Mine is at csswizardry.com/feed.xml\nhttps://csswizardry.com/feed.xml\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHarry Roberts (@csswizardry.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e📡 I’ve been writing a lot lately. I’ve also dusted off my RSS reader. Send me your feeds! Mine is at csswizardry.com/feed.xml\nhttps://csswizardry.com/feed.xml\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eTons of cool people came out with their rss feeds here, again will need to browse more closely later.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/csswizardry.com/post/3lckq4qo6zs22\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/avatar_thumbnail/plain/did:plc:52up7cndgdslkpxfrxb3kghh/bafkreiggbvzqgtieuxek4nfspovxuptd7762coyawrgmsx7c6fmscrvjru\" alt=\"Harry Roberts (@csswizardry.com) — 📡 I’ve been writing a lot lately. I’ve also dusted off my RSS reader. Send me your feeds! Mine is at csswizardry.com/feed.xml\nhttps://csswizardry.com/feed.xml\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eHarry Roberts (@csswizardry.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e📡 I’ve been writing a lot lately. I’ve also dusted off my RSS reader. Send me your feeds! Mine is at csswizardry.com/feed.xml\nhttps://csswizardry.com/feed.xml\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nTons of cool people came out with their rss feeds here, again will need to browse more closely later.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/csswizardry.com/post/3lckq4qo6zs22",
      "date_published": "2025-01-03T22:56:44Z",
      "date_modified": "2025-01-03T22:56:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "rss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-499/",
      "url": "https://waylonwalker.com/thought-499/",
      "title": "💭 myRSS/personal-blogs.xml at master · sturobson/myRSS",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"/static/https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml\" class=\"glightbox-link\" aria-label=\"https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml\"\u003e\u003cimg class=\"glightbox\" src=\"/static/https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml\" alt=\"https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml\"/ data-glightbox=\"description: https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eSturobson has a ton of rss feeds here, I recognize quite a few, will definitely need to poke at some of these later.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n![https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml](/static/https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml)\n\nSturobson has a ton of rss feeds here, I recognize quite a few, will definitely need to poke at some of these later.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://github.com/sturobson/myRSS/blob/master/personal-blogs.xml",
      "date_published": "2025-01-03T22:54:32Z",
      "date_modified": "2025-01-03T22:54:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "rss",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-497/",
      "url": "https://waylonwalker.com/thought-497/",
      "title": "💭 Own Your Web • Buttondown",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://buttondown.com/ownyourweb\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://assets.buttondown.email/images/349f6a10-bca3-4f68-9106-2fc7af674487.jpg\" alt=\"Own Your Web — Own Your Web is a newsletter by Matthias Ott about designing, building, creating, and publishing for and on the Web. Every other week, I send out an exclusive email full of actionable insights, best practices, hacks, links, books, tools, and other high-quality insights I found or explored. Whether you want to get started with your own personal website or level up as a designer, developer, or independent creator working with the ever-changing material of the Web, this little email is for you. ❤✊ Free. No spam ever. You can unsubscribe at any time. By signing up, you consent to my use of your email address to stay in touch with you, as provided in my Privacy Policy.\" loading=\"lazy\"/ data-glightbox=\"description: Own Your Web — Own Your Web is a newsletter by Matthias Ott about designing, building, creating, and publishing for and on the Web. Every other week, I send out an exclusive email full of actionable insights, best practices, hacks, links, books, tools, and other high-quality insights I found or explored. Whether you want to get started with your own personal website or level up as a designer, developer, or independent creator working with the ever-changing material of the Web, this little email is for you. ❤✊ Free. No spam ever. You can unsubscribe at any time. By signing up, you consent to my use of your email address to stay in touch with you, as provided in my Privacy Policy.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOwn Your Web\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOwn Your Web is a newsletter by Matthias Ott about designing, building, creating, and publishing for and on the Web. Every other week, I send out an exclusive email full of actionable insights, bes...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebuttondown.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eI’m a sucker for good own your own shit on the web blogs, and Matthias Ott has a top notch one here.  The archive has been a great read so far, I’ve discovered things like slashpages.net.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://buttondown.com/ownyourweb\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://assets.buttondown.email/images/349f6a10-bca3-4f68-9106-2fc7af674487.jpg\" alt=\"Own Your Web — Own Your Web is a newsletter by Matthias Ott about designing, building, creating, and publishing for and on the Web. Every other week, I send out an exclusive email full of actionable insights, best practices, hacks, links, books, tools, and other high-quality insights I found or explored. Whether you want to get started with your own personal website or level up as a designer, developer, or independent creator working with the ever-changing material of the Web, this little email is for you. ❤✊ Free. No spam ever. You can unsubscribe at any time. By signing up, you consent to my use of your email address to stay in touch with you, as provided in my Privacy Policy.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eOwn Your Web\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eOwn Your Web is a newsletter by Matthias Ott about designing, building, creating, and publishing for and on the Web. Every other week, I send out an exclusive email full of actionable insights, bes...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ebuttondown.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nI'm a sucker for good own your own shit on the web blogs, and Matthias Ott has a top notch one here.  The archive has been a great read so far, I've discovered things like slashpages.net.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://buttondown.com/ownyourweb",
      "date_published": "2025-01-03T16:43:26Z",
      "date_modified": "2025-01-03T16:43:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-496/",
      "url": "https://waylonwalker.com/thought-496/",
      "title": "💭 Fork Around And Find Out | Remaining Authentic in Retirement w...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://share.transistor.fm/s/a9e41e15\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://img.transistorcdn.com/mHoxCHu62O4E-j5TFlNHwKgjmPh6nVKx-9HlNfwAYBg/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS8xMzk0/MmM3M2ExY2IwNTdh/MGM5MjdhMTMyN2Qw/OGU5Ny5wbmc.webp\" alt=\"Fork Around And Find Out | Remaining Authentic in Retirement with Kelsey Hightower — Retirement is about the journey, not the destination. For Kelsey Hightower, it’s been an epic journey. On our debut episode of the Fork Around and Find Out Podcast (and much to Autumn’s elation), Kelsey joins us to run down his illustrious career that spans a quarter of a century.Known for...\" loading=\"lazy\"/ data-glightbox=\"description: Fork Around And Find Out | Remaining Authentic in Retirement with Kelsey Hightower — Retirement is about the journey, not the destination. For Kelsey Hightower, it’s been an epic journey. On our debut episode of the Fork Around and Find Out Podcast (and much to Autumn’s elation), Kelsey joins us to run down his illustrious career that spans a quarter of a century.Known for...\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFork Around And Find Out | Remaining Authentic in Retirement with Kelsey Hightower\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eRetirement is about the journey, not the destination. For Kelsey Hightower, it’s been an epic journey. On our debut episode of the Fork Around and Find Out Podcast (and much to Autumn’s elation...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eshare.transistor.fm\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWhat a great first guest for FAFO.  Kelsey is always such a great listen.  He talks about killedbygoogle and how engineers get no incentive to work on old projects, google had no incentive, and you got the thing for FREE in the first place.  He talks about end of career and having love you money, having so much in the bank you can say no.  If you are presented with a project that does not align with your values you can say no.M\u003c/p\u003e\n\u003cp\u003eJustin even mentions how Google has more killedbygoogle projects than Amazon has total projects.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eIf we knew how hard it would be, we would never build it.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eAutumn’s Fav quote from ep1 of shipit\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://share.transistor.fm/s/a9e41e15\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://img.transistorcdn.com/mHoxCHu62O4E-j5TFlNHwKgjmPh6nVKx-9HlNfwAYBg/rs:fill:0:0:1/w:800/h:800/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS8xMzk0/MmM3M2ExY2IwNTdh/MGM5MjdhMTMyN2Qw/OGU5Ny5wbmc.webp\" alt=\"Fork Around And Find Out | Remaining Authentic in Retirement with Kelsey Hightower — Retirement is about the journey, not the destination. For Kelsey Hightower, it’s been an epic journey. On our debut episode of the Fork Around and Find Out Podcast (and much to Autumn’s elation), Kelsey joins us to run down his illustrious career that spans a quarter of a century.Known for...\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eFork Around And Find Out | Remaining Authentic in Retirement with Kelsey Hightower\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eRetirement is about the journey, not the destination. For Kelsey Hightower, it’s been an epic journey. On our debut episode of the Fork Around and Find Out Podcast (and much to Autumn’s elation...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eshare.transistor.fm\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWhat a great first guest for FAFO.  Kelsey is always such a great listen.  He talks about killedbygoogle and how engineers get no incentive to work on old projects, google had no incentive, and you got the thing for FREE in the first place.  He talks about end of career and having love you money, having so much in the bank you can say no.  If you are presented with a project that does not align with your values you can say no.M\n\nJustin even mentions how Google has more killedbygoogle projects than Amazon has total projects.\n\n\n\u003e If we knew how hard it would be, we would never build it.\n\nAutumn's Fav quote from ep1 of shipit\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://share.transistor.fm/s/a9e41e15",
      "date_published": "2025-01-03T16:39:51Z",
      "date_modified": "2025-01-03T16:39:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "catalytic",
        "thought"
      ]
    },
    {
      "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\n3657 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\" aria-label=\"2fcdafc0-f152-4fa9-ac91-799acd9084d3-239-1.webp\"\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=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-date=\"2021-11-20\" data-preview=\"Husband, dad of two, and hobbyist builder of things on the internet.\"\u003eWaylon Walker\u003c/a\u003e - Husband, dad of two, and hobbyist builder of things on the internet.\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 layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\"\u003eanalytics\u003c/a\u003e - I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of…\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/carry/\" class=\"wikilink\" data-title=\"/carry/\" data-description=\"I try to keep a pretty light every day carry, but it never works out, keyfobs and headphone cases end up causing more bulk than I\u0026#39;d like, but My EDC is no...\" data-date=\"2026-03-27\" data-preview=\"I try to keep a pretty light every day carry, but it never works out, keyfobs and headphone cases end up causing more bulk than I\u0026#39;d like, but My EDC is no...\"\u003e/carry/\u003c/a\u003e - I try to keep a pretty light every day carry, but it never works out, keyfobs and headphone cases end up causing more bulk than I\u0026#39;d like, but My EDC is no…\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=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e - This post is a work in progress.\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=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e - These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my…\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\" data-preview=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\"\u003etinyapps\u003c/a\u003e - I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e. The first three that…\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=\"/wants/\" class=\"wikilink\" data-title=\"wants\" data-description=\"Inspired by mara.town/wants\" data-date=\"2025-05-27\" data-preview=\"Inspired by mara.town/wants\"\u003ewants\u003c/a\u003e - Inspired by mara.town/wants\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\n3657 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=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-date=\"2021-11-20\"\u003eWaylon Walker\u003c/a\u003e - Husband, dad of two, and hobbyist builder of things on the internet.\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 layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e - I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\n* \u003ca href=\"/carry/\" class=\"wikilink\" data-title=\"/carry/\" data-description=\"I try to keep a pretty light every day carry, but it never works out, keyfobs and headphone cases end up causing more bulk than I\u0026#39;d like, but My EDC is no...\" data-date=\"2026-03-27\"\u003e/carry/\u003c/a\u003e - I try to keep a pretty light every day carry, but it never works out, keyfobs and headphone cases end up causing more bulk than I\u0026#39;d like, but My EDC is no...\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=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e - This post is a work in progress.\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=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e - These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\n* \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\"\u003etinyapps\u003c/a\u003e - I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\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=\"/wants/\" class=\"wikilink\" data-title=\"wants\" data-description=\"Inspired by mara.town/wants\" data-date=\"2025-05-27\"\u003ewants\u003c/a\u003e - Inspired by mara.town/wants\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"
      ]
    },
    {
      "id": "https://waylonwalker.com/slow-nfs-performance/",
      "url": "https://waylonwalker.com/slow-nfs-performance/",
      "title": "slow nfs performance",
      "content_html": "\u003cp\u003eI’m running a two node k3s cluster at home, I \u003cem\u003ethought\u003c/em\u003e I could simply mount an\nnfs share on each worker node, and essentially have the same storage accross\nall nodes.  I’m already learning why this is not reccommended.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0e1f8cc5-4212-4c9a-b71c-e714abd43692.png\" class=\"glightbox-link\" aria-label=\"screenshot-2025-01-31T21-18-43-543Z.png\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0e1f8cc5-4212-4c9a-b71c-e714abd43692.png\" alt=\"screenshot-2025-01-31T21-18-43-543Z.png\"/ data-glightbox=\"description: screenshot-2025-01-31T21-18-43-543Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"slow\"\u003eSlow \u003ca href=\"#slow\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI’ve been running some cronjobs and argo workflows on the second node for\nawhile, these are things that run in the background and I don’t care if they\ntake a bit longer to keep my master node freed up for more critical work.\u003c/p\u003e\n\u003cp\u003eI just started trying to build this site in a cronjob, It was taking 20 minutes\nto build, and something I noticed was that markata was taking minutes to run\nglob \u003cem\u003e( search for files )\u003c/em\u003e, normally this happens in a few ms and I never\nnotice this step.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/57605850-2537-41f9-a3cd-15ff2d41c330.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/57605850-2537-41f9-a3cd-15ff2d41c330.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI just moved into the master node and the results were wild at ~30x faster\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"permissions\"\u003ePermissions \u003ca href=\"#permissions\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI have seen where you \u003cem\u003ecan\u003c/em\u003e get diffent permissions on the nfs share based on\nuser id.  Since I’m homelabbing here I only have one user per machine.  As you\nstep into enterprise level VMs with tighter controls and dozens of users for\nall the different services that might run on it.\u003c/p\u003e\n\u003cp\u003eI’ve ran into maybe one issue where I was root in one place and not another,\nother than that it’s been fine.\u003c/p\u003e\n\u003ch2 id=\"and-it-only-got-better\"\u003eAnd it only got better \u003ca href=\"#and-it-only-got-better\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAs the cache was warm subsequent runs only got better.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/9681f8a0-2bdc-46a7-9764-2fd58dea6e7b.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/9681f8a0-2bdc-46a7-9764-2fd58dea6e7b.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eI just checked again and we are now 80x faster\u003c/p\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\u003ch2 id=\"conclusion\"\u003eConclusion \u003ca href=\"#conclusion\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI don’t have the answers yet, it might be my network, it might be nfs settings,\nit might be ext4 filesystem.  I have some things to try, but what I do know is\nthat it is not as easy as I thought it would be just to have the same file\nsystem mounted on both ends and share data between nodes.\u003c/p\u003e\n\u003cp\u003eI might even go with a complete alternative and use minio as a storage backend,\nand sync the files in on each run, this will add some latency to do the sync\neach time though.\u003c/p\u003e\n",
      "content_text": "\nI'm running a two node k3s cluster at home, I _thought_ I could simply mount an\nnfs share on each worker node, and essentially have the same storage accross\nall nodes.  I'm already learning why this is not reccommended.\n\n![screenshot-2025-01-31T21-18-43-543Z.png](https://dropper.waylonwalker.com/api/file/0e1f8cc5-4212-4c9a-b71c-e714abd43692.png)\n\n## Slow\n\nI've been running some cronjobs and argo workflows on the second node for\nawhile, these are things that run in the background and I don't care if they\ntake a bit longer to keep my master node freed up for more critical work.\n\nI just started trying to build this site in a cronjob, It was taking 20 minutes\nto build, and something I noticed was that markata was taking minutes to run\nglob _( search for files )_, normally this happens in a few ms and I never\nnotice this step.\n\n![image](https://dropper.waylonwalker.com/api/file/57605850-2537-41f9-a3cd-15ff2d41c330.webp)\n\n\u003e I just moved into the master node and the results were wild at ~30x faster\n\n## Permissions\n\nI have seen where you _can_ get diffent permissions on the nfs share based on\nuser id.  Since I'm homelabbing here I only have one user per machine.  As you\nstep into enterprise level VMs with tighter controls and dozens of users for\nall the different services that might run on it.\n\nI've ran into maybe one issue where I was root in one place and not another,\nother than that it's been fine.\n\n## And it only got better\n\nAs the cache was warm subsequent runs only got better.\n\n![image](https://dropper.waylonwalker.com/api/file/9681f8a0-2bdc-46a7-9764-2fd58dea6e7b.webp)\n\n\u003e I just checked again and we are now 80x faster\n\n## Conclusion\n\nI don't have the answers yet, it might be my network, it might be nfs settings,\nit might be ext4 filesystem.  I have some things to try, but what I do know is\nthat it is not as easy as I thought it would be just to have the same file\nsystem mounted on both ends and share data between nodes.\n\nI might even go with a complete alternative and use minio as a storage backend,\nand sync the files in on each run, this will add some latency to do the sync\neach time though.\n",
      "summary": "I'm running a two node k3s cluster at home, I _ I could simply mount an nfs share on each worker node, and essentially have the same storage accross all...",
      "date_published": "2025-01-02T20:23:10Z",
      "date_modified": "2025-01-02T20:23:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "containers",
        "k3s",
        "kubernetes"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-495/",
      "url": "https://waylonwalker.com/thought-495/",
      "title": "💭 Changelog • Robb Knight",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://rknight.me/log/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://v1.screenshot.11ty.dev/https%3A%2F%2Frknight.me%2Fopengraph%2Flog%2F/opengraph/_14334\" alt=\"Changelog — Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.\" loading=\"lazy\"/ data-glightbox=\"description: Changelog — Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eChangelog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMaker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003erknight.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWell done changelog with some really good inspirational nuggets.  Many slash pages I want to check out and an 11ty contribution graph.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://rknight.me/log/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://v1.screenshot.11ty.dev/https%3A%2F%2Frknight.me%2Fopengraph%2Flog%2F/opengraph/_14334\" alt=\"Changelog — Maker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eChangelog\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eMaker of web things, sticker merchant, viral toot-based business man, blogger, podcaster, and pizzaiolo. Human dad.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003erknight.me\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWell done changelog with some really good inspirational nuggets.  Many slash pages I want to check out and an 11ty contribution graph.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://rknight.me/log/",
      "date_published": "2025-01-02T18:16:10Z",
      "date_modified": "2025-01-02T18:16:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-494/",
      "url": "https://waylonwalker.com/thought-494/",
      "title": "💭 slash pages",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://slashpages.net/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://slashpages.net/icons/preview.jpg\" alt=\"slash pages — A guide to common pages you can add to your website\" loading=\"lazy\"/ data-glightbox=\"description: slash pages — A guide to common pages you can add to your website\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eslash pages\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA guide to common pages you can add to your website\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eslashpages.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eA nice list of slashpages you might want to consider including / aliasing / 301ing. These feel like nice things to setup and keep in the back pocket for obsidian style wiki link to easily.  I get kinda bad at wiki-linking as much as I would like to, mostly because it does require some amount of work to make the page, and keep it up to date over time, then remember that you even have it.\u003c/p\u003e\n\u003cp\u003eSome are serious, some very common, some quite useful.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://slashpages.net/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://slashpages.net/icons/preview.jpg\" alt=\"slash pages — A guide to common pages you can add to your website\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eslash pages\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA guide to common pages you can add to your website\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eslashpages.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nA nice list of slashpages you might want to consider including / aliasing / 301ing. These feel like nice things to setup and keep in the back pocket for obsidian style wiki link to easily.  I get kinda bad at wiki-linking as much as I would like to, mostly because it does require some amount of work to make the page, and keep it up to date over time, then remember that you even have it.\n\nSome are serious, some very common, some quite useful.\n\n![image](https://dropper.waylonwalker.com/api/file/ba4edf27-03d4-49ff-ab4e-712e9ab8acda.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://slashpages.net/",
      "date_published": "2025-01-02T16:17:51Z",
      "date_modified": "2025-01-02T16:17:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/colophon/",
      "url": "https://waylonwalker.com/colophon/",
      "title": "/colophon",
      "content_html": "\u003cblockquote\u003e\n\u003cp\u003e\u003ca href=\"https://indieweb.org/colophon\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/indieweb.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/indieweb.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eColophon\u003c/a\u003e a page that describes how the site\nis made, with what tools, supporting what technologies\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"author\"\u003eAuthor \u003ca href=\"#author\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://images.waylonwalker.com/profile.webp\" class=\"glightbox-link\" aria-label=\"Waylon Walker’s Profile Picture\"\u003e\u003cimg class=\"glightbox\" src=\"https://images.waylonwalker.com/profile.webp\" alt=\"Waylon Walker’s Profile Picture\"/ data-glightbox=\"description: Waylon Walker’s Profile Picture\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAll posts on this site are written by \u003ca href=\"https://waylonwalker.com\"\u003eWaylon\nWalker\u003c/a\u003e, the typical content has changed and evolved\nover time.  I go back and make a few corrections, but for the most part things\nstay pretty much as they were published originally.\u003c/p\u003e\n\u003cp\u003esee more in \u003ca href=\"/about/\" class=\"wikilink\" data-title=\"Waylon Walker\" data-description=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-date=\"2021-11-20\" data-preview=\"Husband, dad of two, and hobbyist builder of things on the internet.\"\u003eWaylon Walker\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"tech\"\u003etech \u003ca href=\"#tech\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis site is a static site build with my own static site generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e or as Simon Willison calls it a \u003ca href=\"https://simonwillison.net/2024/Dec/22/link-blog/#atom-everything\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/simonwillison.net.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/simonwillison.net.ico\" class=\"has-avatar  has-avatar-before\"\u003elink\nblog\u003c/a\u003e posts\nare pulled in as a regular posts, all is hosted on cloudflare pages.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003eThoughts\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecloudflare pages\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003esee more about these components in \u003ca href=\"/about-this-site/\" class=\"wikilink\" data-title=\"about this site\" data-description=\"I registered waylonwalker.com and started making content for it in 2017 after a big industry downturn in 2016 that left me scared for what would happen if I...\" data-date=\"2024-05-31\" data-preview=\"I registered waylonwalker.com and started making content for it in 2017 after a big industry downturn in 2016 that left me scared for what would happen if I...\"\u003eabout this site\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"analytics\"\u003eAnalytics \u003ca href=\"#analytics\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI do not track users, I respect the privacy of my readers and do not track\ntheir information.  I do track \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\" data-preview=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\"\u003eanalytics\u003c/a\u003e on my own writing a post rate.\nIts more of an interesting history of the site.\u003c/p\u003e\n\u003ch2 id=\"meta\"\u003emeta \u003ca href=\"#meta\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eSome evergreen pages that are more about me or this site from the \u003ca href=\"/tags/meta/\" class=\"wikilink\" data-title=\"Posts tagged: meta\" data-description=\"All posts with the tag \u0026#34;meta\u0026#34;\" data-preview=\"All posts with the tag \u0026#34;meta\u0026#34;\"\u003ePosts tagged: meta\u003c/a\u003e feed.\u003c/p\u003e\n",
      "content_text": "\n\u003e [Colophon](https://indieweb.org/colophon) a page that describes how the site\n\u003e is made, with what tools, supporting what technologies\n\n## Author\n\n![Waylon Walker's Profile Picture](https://images.waylonwalker.com/profile.webp)\n\nAll posts on this site are written by [Waylon\nWalker](https://waylonwalker.com), the typical content has changed and evolved\nover time.  I go back and make a few corrections, but for the most part things\nstay pretty much as they were published originally.\n\nsee more in \u003ca href=\"/about/\" class=\"wikilink\" data-title=\"Waylon Walker\" data-description=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-date=\"2021-11-20\"\u003eWaylon Walker\u003c/a\u003e\n\n## tech\n\nThis site is a static site build with my own static site generator \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e or as Simon Willison calls it a [link\nblog](https://simonwillison.net/2024/Dec/22/link-blog/#atom-everything) posts\nare pulled in as a regular posts, all is hosted on cloudflare pages.\n\n* \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e\n* \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003eThoughts\u003c/a\u003e\n* cloudflare pages\n\nsee more about these components in \u003ca href=\"/about-this-site/\" class=\"wikilink\" data-title=\"about this site\" data-description=\"I registered waylonwalker.com and started making content for it in 2017 after a big industry downturn in 2016 that left me scared for what would happen if I...\" data-date=\"2024-05-31\"\u003eabout this site\u003c/a\u003e\n\n## Analytics\n\nI do not track users, I respect the privacy of my readers and do not track\ntheir information.  I do track \u003ca href=\"/analytics/\" class=\"wikilink\" data-title=\"analytics\" data-description=\"I\u0026#39;ve been posting on this site since 2016, when layoffs were rolling through the company I worked for at the time. Starting a personal blog and a pile of...\" data-date=\"2025-01-22\"\u003eanalytics\u003c/a\u003e on my own writing a post rate.\nIts more of an interesting history of the site.\n\n## meta\n\nSome evergreen pages that are more about me or this site from the \u003ca href=\"/tags/meta/\" class=\"wikilink\" data-title=\"Posts tagged: meta\" data-description=\"All posts with the tag \u0026#34;meta\u0026#34;\"\u003ePosts tagged: meta\u003c/a\u003e feed.\n\n\n",
      "summary": "Colophon a page that describes how the site \u003e is made, with what tools, supporting what technologies",
      "date_published": "2025-01-02T10:21:23Z",
      "date_modified": "2025-01-02T10:21:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "blog",
        "dev",
        "meta",
        "slash",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-493/",
      "url": "https://waylonwalker.com/thought-493/",
      "title": "💭 We need to have a talk... - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"_VQl_HTk9PM\" title=\"Serverless: A Comprehensive Breakdown\" playlabel=\"Play: Serverless: A Comprehensive Breakdown\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eTheo does a fantastic history of serverless here.\u003c/p\u003e\n\u003ch2 id=\"kubernetes-shit\"\u003eKubernetes shit \u003ca href=\"#kubernetes-shit\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTheo can’t have an infra video without shitting on k8s.  Specifically people who have never touched k8s pushing fear of k8s to large audiences of people who have never touched k8s.  If you are a webdev who solely lives in webdev space and never touches as much as a dockerfile listen to him.  If you touch infra at all try it before you take his opinion at face value.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a84ec689-e84f-458a-b1d6-fec85b310023.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a84ec689-e84f-458a-b1d6-fec85b310023.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"serverless-shines-in-high-variance\"\u003eServerless shines in high variance \u003ca href=\"#serverless-shines-in-high-variance\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you plan on having traffic spikes 10x your regular traffic for something like black friday, serverless might be right for your use case.\u003c/p\u003e\n\u003ch2 id=\"stateless-programming\"\u003estateless programming \u003ca href=\"#stateless-programming\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHe argues that targeting a stateless deployment of serverless leads to better code.  I’d like to see more examples here.  Maybe most of the code bases I work on already do this.  I’ve never targeted a serverless deployment, but I’ve targeted horizontally scaled deployments many times and they feel like they have the same targets.  For instance if I spin up 8 pods for my application or uvicorn with 3 workers I have to target statelessness, all of the state must live in the database and cannot live in memory.  Even if I target 1 instance in a containerized environment I have to be ready for restarts at any point in time.\u003c/p\u003e\n\u003cp\u003eI might be missing something here, but I don’t see how this point applies to serverless.\u003c/p\u003e\n\u003ch2 id=\"scale-to-zero-services\"\u003eScale to Zero Services \u003ca href=\"#scale-to-zero-services\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a06523f8-35e1-46cf-83b8-fd6be0831d93.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a06523f8-35e1-46cf-83b8-fd6be0831d93.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=_VQl_HTk9PM\u0026amp;t=2607s\" 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\"\u003ehttps://www.youtube.com/watch?v=_VQl_HTk9PM\u0026amp;t=2607s\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eCompanies that can run on scale to zero can allow your shitty side projects that have no users run for free indefinitely because it costs them nothing.  He compares planetscale running mysql vs Turso running SQLite stored in s3.\u003c/p\u003e\n\u003ch2 id=\"everything-he-covers-is-really-cloud-to-cloud\"\u003eEverything he covers is really cloud to cloud \u003ca href=\"#everything-he-covers-is-really-cloud-to-cloud\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eHe compares early deployments of LAMP and MEAN stack running on one server then jumps to serverless.  It feels like he is missing the angle of owning your own hardware.  This might just be the experience difference between theo and DHH.  DHH works on one focused company, Theo is jumping around between startups.\u003c/p\u003e\n\u003ch2 id=\"ok-i-get-some-of-it\"\u003eOk I get some of it \u003ca href=\"#ok-i-get-some-of-it\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAt the end he covers a dumb side project that has branch deploys.  It had a 100s of deploy still running, some very old, some never even touched, vercel can do this because it costs them nothing if its not running.  What I didn’t think about right away is that there is probably a backend component to this.\u003c/p\u003e\n\u003cp\u003eIn my python backends I often have deploy environments, but since they don’t scale to zero they have at least some cost even if its small, with this I cannot just keep hundreds of them running because that cost would add up.\u003c/p\u003e\n\u003cp\u003eI would argue that this is hardly useful, because you can checkout any old version and run it locally, and you rarely are going to need to poke through these old branch deploys.  But in that case that you need to quickly do this serverless is definitely superior.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"_VQl_HTk9PM\" title=\"Serverless: A Comprehensive Breakdown\" playlabel=\"Play: Serverless: A Comprehensive Breakdown\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nTheo does a fantastic history of serverless here.\n\n## Kubernetes shit\n\nTheo can't have an infra video without shitting on k8s.  Specifically people who have never touched k8s pushing fear of k8s to large audiences of people who have never touched k8s.  If you are a webdev who solely lives in webdev space and never touches as much as a dockerfile listen to him.  If you touch infra at all try it before you take his opinion at face value.\n\n![image](https://dropper.waylonwalker.com/api/file/a84ec689-e84f-458a-b1d6-fec85b310023.webp)\n\n## Serverless shines in high variance\n\nIf you plan on having traffic spikes 10x your regular traffic for something like black friday, serverless might be right for your use case.\n\n## stateless programming\n\nHe argues that targeting a stateless deployment of serverless leads to better code.  I'd like to see more examples here.  Maybe most of the code bases I work on already do this.  I've never targeted a serverless deployment, but I've targeted horizontally scaled deployments many times and they feel like they have the same targets.  For instance if I spin up 8 pods for my application or uvicorn with 3 workers I have to target statelessness, all of the state must live in the database and cannot live in memory.  Even if I target 1 instance in a containerized environment I have to be ready for restarts at any point in time.\n\nI might be missing something here, but I don't see how this point applies to serverless.\n\n## Scale to Zero Services\n\n![image](https://dropper.waylonwalker.com/api/file/a06523f8-35e1-46cf-83b8-fd6be0831d93.webp)\n\nhttps://www.youtube.com/watch?v=_VQl_HTk9PM\u0026t=2607s\n\nCompanies that can run on scale to zero can allow your shitty side projects that have no users run for free indefinitely because it costs them nothing.  He compares planetscale running mysql vs Turso running SQLite stored in s3.\n\n## Everything he covers is really cloud to cloud\n\nHe compares early deployments of LAMP and MEAN stack running on one server then jumps to serverless.  It feels like he is missing the angle of owning your own hardware.  This might just be the experience difference between theo and DHH.  DHH works on one focused company, Theo is jumping around between startups.\n\n## Ok I get some of it\n\nAt the end he covers a dumb side project that has branch deploys.  It had a 100s of deploy still running, some very old, some never even touched, vercel can do this because it costs them nothing if its not running.  What I didn't think about right away is that there is probably a backend component to this.  \n\nIn my python backends I often have deploy environments, but since they don't scale to zero they have at least some cost even if its small, with this I cannot just keep hundreds of them running because that cost would add up.\n\nI would argue that this is hardly useful, because you can checkout any old version and run it locally, and you rarely are going to need to poke through these old branch deploys.  But in that case that you need to quickly do this serverless is definitely superior.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=_HTk9PM\u0026t=2607s",
      "date_published": "2025-01-02T03:04:14Z",
      "date_modified": "2025-01-02T03:04:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-492/",
      "url": "https://waylonwalker.com/thought-492/",
      "title": "💭 linkding | linkding",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://linkding.link/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003elinkding\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA self-hosted bookmarking service that is designed to be minimal, fast and easy to set up.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003elinkding · linkding.link\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003elinkding looks like an interesting alternative to thoughts.  Thoughts is focused on the note being a value add tweet length blog post that you share to the public.  This seems more focused on fire and forget with some note taking and search ability.  I should definitely level up the search and tag discovery in thoughts.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://linkding.link/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003elinkding\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA self-hosted bookmarking service that is designed to be minimal, fast and easy to set up.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003elinkding \u0026middot; linkding.link\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nlinkding looks like an interesting alternative to thoughts.  Thoughts is focused on the note being a value add tweet length blog post that you share to the public.  This seems more focused on fire and forget with some note taking and search ability.  I should definitely level up the search and tag discovery in thoughts.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://linkding.link/",
      "date_published": "2025-01-02T02:51:03Z",
      "date_modified": "2025-01-02T02:51:03Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "homelab",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-489/",
      "url": "https://waylonwalker.com/thought-489/",
      "title": "💭 Wrapping your favorite CLI in neovim - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"rerTvidyz-0\" title=\"Wrapping your favorite CLI in neovim\" playlabel=\"Play: Wrapping your favorite CLI in neovim\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003ecool video on expanding vim with cli.\u003c/p\u003e\n\u003ch2 id=\"piping-commands-into-vim\"\u003epiping commands into vim \u003ca href=\"#piping-commands-into-vim\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4283e98a-9b12-4f8a-9799-a097d5f3184d.webp\" class=\"glightbox-link\" aria-label=\"piping commands into vim\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4283e98a-9b12-4f8a-9799-a097d5f3184d.webp\" alt=\"piping commands into vim\"/ data-glightbox=\"description: piping commands into vim\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"write-a-healthcheck\"\u003ewrite a healthcheck \u003ca href=\"#write-a-healthcheck\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d90a8c88-4748-4dfe-8569-b51c023c825b.webp\" class=\"glightbox-link\" aria-label=\"write a healthcheck\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d90a8c88-4748-4dfe-8569-b51c023c825b.webp\" alt=\"write a healthcheck\"/ data-glightbox=\"description: write a healthcheck\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"rerTvidyz-0\" title=\"Wrapping your favorite CLI in neovim\" playlabel=\"Play: Wrapping your favorite CLI in neovim\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\ncool video on expanding vim with cli.\n\n\n## piping commands into vim\n\n![piping commands into vim](https://dropper.waylonwalker.com/api/file/4283e98a-9b12-4f8a-9799-a097d5f3184d.webp)\n\n## write a healthcheck\n\n![write a healthcheck](https://dropper.waylonwalker.com/api/file/d90a8c88-4748-4dfe-8569-b51c023c825b.webp)\n\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=rerTvidyz-0\u0026t=160s",
      "date_published": "2024-12-31T21:02:44Z",
      "date_modified": "2024-12-31T21:02:44Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "neovim",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-488/",
      "url": "https://waylonwalker.com/thought-488/",
      "title": "💭 Why Your Backend Shouldn't Serve Files - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"aybSXT9ZJ8w\" title=\"Why Your Backend Shouldn\u0026#39;t Serve Files\" playlabel=\"Play: Why Your Backend Shouldn\u0026#39;t Serve Files\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eLane from boot.dev madde this fantastic video about serving files on the internet.  It has me wondering if I need to rethink a few of my things that I have built.  I have a few things I am serving media from, but I have very aggressive cloudflare cache rules on them, so each file should only be uploaded about once per year.\u003c/p\u003e\n\u003cp\u003eMy problem going straight out of minio right now is how do i set headers for cache control on it.  If I can’t set the cache control and everything is coming out of minio this does not solve my problems.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eI went back and played with presigned urls and you can in fact control and set response headers, this is definitely the way and I have been wrong.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"aybSXT9ZJ8w\" title=\"Why Your Backend Shouldn\u0026#39;t Serve Files\" playlabel=\"Play: Why Your Backend Shouldn\u0026#39;t Serve Files\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nLane from boot.dev madde this fantastic video about serving files on the internet.  It has me wondering if I need to rethink a few of my things that I have built.  I have a few things I am serving media from, but I have very aggressive cloudflare cache rules on them, so each file should only be uploaded about once per year.\n\nMy problem going straight out of minio right now is how do i set headers for cache control on it.  If I can't set the cache control and everything is coming out of minio this does not solve my problems.\n\n---\n\nI went back and played with presigned urls and you can in fact control and set response headers, this is definitely the way and I have been wrong.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=aybSXT9ZJ8w",
      "date_published": "2024-12-31T16:24:28Z",
      "date_modified": "2024-12-31T16:24:28Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-487/",
      "url": "https://waylonwalker.com/thought-487/",
      "title": "💭 curl with partial files | daniel.haxx.se",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daniel.haxx.se/blog/2024/12/30/curl-with-partial-files/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://daniel.haxx.se/blog/wp-content/uploads/2021/04/curl-polynesia-puzzle.jpg\" alt=\"curl with partial files — Back in September 2023, we extended the curl command line tool with a new fairly advanced and flexible variable system. Using this, users can use files, environment variables and more in a powerful way when building curl command lines in ways not previously possible - with almost all existing command line options. curl command lines … Continue reading curl with partial files →\" loading=\"lazy\"/ data-glightbox=\"description: curl with partial files — Back in September 2023, we extended the curl command line tool with a new fairly advanced and flexible variable system. Using this, users can use files, environment variables and more in a powerful way when building curl command lines in ways not previously possible - with almost all existing command line options. curl command lines … Continue reading curl with partial files →\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecurl with partial files\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eBack in September 2023, we extended the curl command line tool with a new fairly advanced and flexible variable system. Using this, users can use files, environment variables and more in a powerful...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edaniel.haxx.se · daniel.haxx.se\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThis is a cool new feature coming to bash, I can’t think of a use case I have out of the gate, but it looks cool.  I’m thinking this might be good to keep in the back pocket for something like CI where I don’t have a hightly tuned bashrc file, and I want a dynamic curl request based on some state that exists as a fille.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://daniel.haxx.se/blog/2024/12/30/curl-with-partial-files/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://daniel.haxx.se/blog/wp-content/uploads/2021/04/curl-polynesia-puzzle.jpg\" alt=\"curl with partial files — Back in September 2023, we extended the curl command line tool with a new fairly advanced and flexible variable system. Using this, users can use files, environment variables and more in a powerful way when building curl command lines in ways not previously possible - with almost all existing command line options. curl command lines … Continue reading curl with partial files →\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ecurl with partial files\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eBack in September 2023, we extended the curl command line tool with a new fairly advanced and flexible variable system. Using this, users can use files, environment variables and more in a powerful...\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003edaniel.haxx.se \u0026middot; daniel.haxx.se\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThis is a cool new feature coming to bash, I can't think of a use case I have out of the gate, but it looks cool.  I'm thinking this might be good to keep in the back pocket for something like CI where I don't have a hightly tuned bashrc file, and I want a dynamic curl request based on some state that exists as a fille.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://daniel.haxx.se/blog/2024/12/30/curl-with-partial-files/",
      "date_published": "2024-12-30T21:29:52Z",
      "date_modified": "2024-12-30T21:29:52Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-486/",
      "url": "https://waylonwalker.com/thought-486/",
      "title": "💭 The beautiful sentence that is the web",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/web-dev-sentence/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://cassidoo.co/og-image/web-dev-sentence.png\" alt=\"The beautiful sentence that is the web — A metaphor for the building blocks of web development.\" loading=\"lazy\"/ data-glightbox=\"description: The beautiful sentence that is the web — A metaphor for the building blocks of web development.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe beautiful sentence that is the web\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA metaphor for the building blocks of web development.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eNicely worded Cassidy!  Javascript can be too much, it can bog down low powered devices, we can ship so much that its untenable on poor connections.  It can be argued that its a bad language and putting it on the server is a mistake, but it brings sites to life.  It makes it possible to extend the static nature of \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e/css with just a little special spice only your site needs.\u003c/p\u003e\n\u003cp\u003eI’d add to the argument that a lot of js should go away over time.  Over time libraries such as jquery have fallen out of use, not because they are bad, or have been replaced by new libraries, but because the browser has adopted most of the functionality that jquery brought.\u003c/p\u003e\n\u003cp\u003eAs a primarily python dev I’d really like to see \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e die a very similar graceful death.  There have been several iterations on this idea, and the crux of it is very similar, give the ability to use HTTP verbs right inside html with some instruction of when to apply them and what to apply them to.\u003c/p\u003e\n\u003cp\u003eNo js should not go away, it never will, we will always find new patterns that the browser should take, sites will always need a small bit of spice to bring them to life.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://cassidoo.co/post/web-dev-sentence/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cassidoo.co/og-image/web-dev-sentence.png\" alt=\"The beautiful sentence that is the web — A metaphor for the building blocks of web development.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eThe beautiful sentence that is the web\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA metaphor for the building blocks of web development.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ecassidoo.co\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nNicely worded Cassidy!  Javascript can be too much, it can bog down low powered devices, we can ship so much that its untenable on poor connections.  It can be argued that its a bad language and putting it on the server is a mistake, but it brings sites to life.  It makes it possible to extend the static nature of html/css with just a little special spice only your site needs.\n\nI'd add to the argument that a lot of js should go away over time.  Over time libraries such as jquery have fallen out of use, not because they are bad, or have been replaced by new libraries, but because the browser has adopted most of the functionality that jquery brought.\n\nAs a primarily python dev I'd really like to see htmx die a very similar graceful death.  There have been several iterations on this idea, and the crux of it is very similar, give the ability to use HTTP verbs right inside html with some instruction of when to apply them and what to apply them to.\n\nNo js should not go away, it never will, we will always find new patterns that the browser should take, sites will always need a small bit of spice to bring them to life.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://cassidoo.co/post/web-dev-sentence/",
      "date_published": "2024-12-30T21:25:08Z",
      "date_modified": "2024-12-30T21:25:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-485/",
      "url": "https://waylonwalker.com/thought-485/",
      "title": "💭 Teleport to coop partner | Hypixel Forums",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hypixel.net/threads/teleport-to-coop-partner.2250505/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://hypixel.net/styles/hypixel-v2/images/hypixel-512px.png\" alt=\"Teleport to coop partner — Hello,\nIs there a command where you can teleport to your coop partner? Or is it just this Follow button in chat?  :)\" loading=\"lazy\"/ data-glightbox=\"description: Teleport to coop partner — Hello,\nIs there a command where you can teleport to your coop partner? Or is it just this Follow button in chat?  :)\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTeleport to coop partner\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHello,\nIs there a command where you can teleport to your coop partner? Or is it just this Follow button in chat?  :)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eHypixel Forums · hypixel.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003e/p warp will warp your party to your current server in hypixel skyblock\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a4f5be07-5f79-450c-a40d-1f48ac086e05.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a4f5be07-5f79-450c-a40d-1f48ac086e05.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://hypixel.net/threads/teleport-to-coop-partner.2250505/\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://hypixel.net/styles/hypixel-v2/images/hypixel-512px.png\" alt=\"Teleport to coop partner — Hello,\nIs there a command where you can teleport to your coop partner? Or is it just this Follow button in chat?  :)\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eTeleport to coop partner\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eHello,\nIs there a command where you can teleport to your coop partner? Or is it just this Follow button in chat?  :)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eHypixel Forums \u0026middot; hypixel.net\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\n/p warp will warp your party to your current server in hypixel skyblock\n\n![image](https://dropper.waylonwalker.com/api/file/a4f5be07-5f79-450c-a40d-1f48ac086e05.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://hypixel.net/threads/teleport-to-coop-partner.2250505/",
      "date_published": "2024-12-30T17:19:10Z",
      "date_modified": "2024-12-30T17:19:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming",
        "minecraft",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-484/",
      "url": "https://waylonwalker.com/thought-484/",
      "title": "💭 How to configure base url for all requests using HTMX? - Stack...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stackoverflow.com/questions/69456875/how-to-configure-base-url-for-all-requests-using-htmx\" class=\"embed-card-link  has-avatar has-avatar-before\" target=\"_blank\" rel=\"noopener noreferrer\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/stackoverflow.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/stackoverflow.com.ico\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estackoverflow.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eToday I learned how to configure the baseurl for \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e using the \u003cbase/\u003e tag.  This is pretty handy to be able to configure different baseurls.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ebase\u003c/span\u003e \u003cspan class=\"na\"\u003ehref\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;\u0026lt;scheme\u0026gt;://\u0026lt;netloc\u0026gt;/api/v1/\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;\u003c/span\u003e\u003cspan class=\"nt\"\u003ebutton\u003c/span\u003e \u003cspan class=\"na\"\u003ehx-post\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;clicked\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       \u003cspan class=\"na\"\u003ehx-trigger\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;click\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       \u003cspan class=\"na\"\u003ehx-target\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;#parent-div\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e       \u003cspan class=\"na\"\u003ehx-swap\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s\"\u003e\u0026#34;outerHTML\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    Click Me!\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e\u0026lt;/\u003c/span\u003e\u003cspan class=\"nt\"\u003ebutton\u003c/span\u003e\u003cspan class=\"p\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://stackoverflow.com/questions/69456875/how-to-configure-base-url-for-all-requests-using-htmx\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eExternal Link\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003estackoverflow.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nToday I learned how to configure the baseurl for htmx using the \u003cbase\u003e tag.  This is pretty handy to be able to configure different baseurls.\n\n``` html\n  \u003cbase href=\"\u003cscheme\u003e://\u003cnetloc\u003e/api/v1/\"\u003e\n  \u003cbutton hx-post=\"clicked\"\n       hx-trigger=\"click\"\n       hx-target=\"#parent-div\"\n       hx-swap=\"outerHTML\"\u003e\n    Click Me!\n  \u003c/button\u003e\n```\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://stackoverflow.com/questions/69456875/how-to-configure-base-url-for-all-requests-using-htmx",
      "date_published": "2024-12-30T16:25:49Z",
      "date_modified": "2024-12-30T16:25:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "htmx",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-482/",
      "url": "https://waylonwalker.com/thought-482/",
      "title": "💭 Addy Osmani: \"Tip: Chrome DevTools can override the content of...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/addyosmani.bsky.social/post/3lei5jhkgdk2k\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://video.bsky.app/watch/did%3Aplc%3Aympscj7qcsrcpj4qz35qhs3v/bafkreiapekc7qrtgki4efd36iftkvm57ejdnp5lkmlp6ifnlufver7dqum/thumbnail.jpg\" alt=\"Addy Osmani (@addyosmani.bsky.social) — Tip: Chrome DevTools can override the content of Fetch/XHR requests! Useful for mocking APIs without waiting on backend changes.\" loading=\"lazy\"/ data-glightbox=\"description: Addy Osmani (@addyosmani.bsky.social) — Tip: Chrome DevTools can override the content of Fetch/XHR requests! Useful for mocking APIs without waiting on backend changes.\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAddy Osmani (@addyosmani.bsky.social)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTip: Chrome DevTools can override the content of Fetch/XHR requests! Useful for mocking APIs without waiting on backend changes.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eWTF, you can just change a server response from devtools and update a vuejs app?  Just tried with \u003ca href=\"/htmx/\" class=\"glossary-term\" title=\"htmx is a frontend javascript library for creating dynamic web applications.\"\u003ehtmx\u003c/a\u003e, and my GET requests are not showing up in the sources tab.  I’ll keep this in my back pocket for next time I’m supporting a vuejs app though.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/addyosmani.bsky.social/post/3lei5jhkgdk2k\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://video.bsky.app/watch/did%3Aplc%3Aympscj7qcsrcpj4qz35qhs3v/bafkreiapekc7qrtgki4efd36iftkvm57ejdnp5lkmlp6ifnlufver7dqum/thumbnail.jpg\" alt=\"Addy Osmani (@addyosmani.bsky.social) — Tip: Chrome DevTools can override the content of Fetch/XHR requests! Useful for mocking APIs without waiting on backend changes.\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eAddy Osmani (@addyosmani.bsky.social)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eTip: Chrome DevTools can override the content of Fetch/XHR requests! Useful for mocking APIs without waiting on backend changes.\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nWTF, you can just change a server response from devtools and update a vuejs app?  Just tried with htmx, and my GET requests are not showing up in the sources tab.  I'll keep this in my back pocket for next time I'm supporting a vuejs app though.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/addyosmani.bsky.social/post/3lei5jhkgdk2k",
      "date_published": "2024-12-30T02:48:43Z",
      "date_modified": "2024-12-30T02:48:43Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "thought",
        "webdev"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-481/",
      "url": "https://waylonwalker.com/thought-481/",
      "title": "💭 Gary Vaynerchuk: \"2025 : the year of action … who’s finally re...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/garyvee.com/post/3leidcd6xjk2y\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3g5dwh5bw3leulmrtfo4rlxm/bafkreig7nwdidlkbnyghjzmgfxr7bjjewepoodqywqvtykui4yfozt3i7m\" alt=\"Gary Vaynerchuk (@garyvee.com) — 2025 : the year of action … who’s finally ready ?\n\u0026lt;p\u0026gt;PS: text me for any follow up questions at 📱 1-212-931-5731\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;#2025 #todo #todolist #motivation #garyvee\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Gary Vaynerchuk (@garyvee.com) — 2025 : the year of action … who’s finally ready ?\n\u0026lt;p\u0026gt;PS: text me for any follow up questions at 📱 1-212-931-5731\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;#2025 #todo #todolist #motivation #garyvee\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eGary Vaynerchuk (@garyvee.com)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003e2025 : the year of action … who’s finally ready ?\u003cp\u003e\u003c/p\u003e\n\u003cp\u003ePS: text me for any follow up questions at 📱 1-212-931-5731\u003c/p\u003e\n\u003cp\u003e#2025 #todo #todolist #motivation #garyvee\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eGary Vee, is the goat.  leaving this image as a reminder for myself\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/074edddb-8b46-4d94-9b55-d70a7bb74366.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/074edddb-8b46-4d94-9b55-d70a7bb74366.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/garyvee.com/post/3leidcd6xjk2y\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3g5dwh5bw3leulmrtfo4rlxm/bafkreig7nwdidlkbnyghjzmgfxr7bjjewepoodqywqvtykui4yfozt3i7m\" alt=\"Gary Vaynerchuk (@garyvee.com) — 2025 : the year of action … who’s finally ready ?\n\nPS: text me for any follow up questions at 📱 1-212-931-5731\n\n#2025 #todo #todolist #motivation #garyvee\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eGary Vaynerchuk (@garyvee.com)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003e2025 : the year of action … who’s finally ready ?\n\nPS: text me for any follow up questions at 📱 1-212-931-5731\n\n#2025 #todo #todolist #motivation #garyvee\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nGary Vee, is the goat.  leaving this image as a reminder for myself\n\n![image](https://dropper.waylonwalker.com/api/file/074edddb-8b46-4d94-9b55-d70a7bb74366.webp)\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/garyvee.com/post/3leidcd6xjk2y",
      "date_published": "2024-12-30T02:45:02Z",
      "date_modified": "2024-12-30T02:45:02Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "startup",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/atuinsh-atuin/",
      "url": "https://waylonwalker.com/atuinsh-atuin/",
      "title": "⭐ atuinsh atuin",
      "content_html": "\u003cp\u003eThe work on \u003ca href=\"https://github.com/atuinsh/atuin\" 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\"\u003eatuin\u003c/a\u003e by \u003ca href=\"https://github.com/atuinsh\" 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\"\u003eatuinsh\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e✨ Magical shell history\u003c/p\u003e\n",
      "content_text": "\nThe work on [atuin](https://github.com/atuinsh/atuin) by [atuinsh](https://github.com/atuinsh).\n\n✨ Magical shell history\n",
      "summary": "The work on atuin by atuinsh.",
      "date_published": "2024-12-28T23:18:51Z",
      "date_modified": "2024-12-28T23:18:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "github-stars"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-475/",
      "url": "https://waylonwalker.com/thought-475/",
      "title": "💭 Ellie Huxtable: \"Atuin v18.4 is out now! Including `atuin wrap...",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/ellie.wtf/post/3lecj36r5ps2x\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:6pz6ncxxtia36hrtbf24wzue/bafkreigfrzhv3ju3ynaugisqh5wc2qsharsqott5ru4i7tb53ha2fnerde\" alt=\"Ellie Huxtable (@ellie.wtf) — Atuin v18.4 is out now!\n\u0026lt;p\u0026gt;Including \u0026lt;code\u0026gt;atuin wrapped\u0026lt;/code\u0026gt;, your year in shell history 🐢\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;thanks @daveeddy.com for the suggestion!\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\" embed-card-content glightbox\"=\"\"/ data-glightbox=\"description: Ellie Huxtable (@ellie.wtf) — Atuin v18.4 is out now!\n\u0026lt;p\u0026gt;Including \u0026lt;code\u0026gt;atuin wrapped\u0026lt;/code\u0026gt;, your year in shell history 🐢\u0026lt;/p\u0026gt;\n\u0026lt;p\u0026gt;thanks @daveeddy.com for the suggestion!\u0026#34; loading=“lazy”\u0026gt;\n\u0026lt;/div\u0026gt;\n\u0026lt;div class=\"\u003e\n\u003cdiv class=\"embed-card-title\"\u003eEllie Huxtable (@ellie.wtf)\u003c/div\u003e\n\u003cdiv class=\"embed-card-description\"\u003eAtuin v18.4 is out now!\u003cp\u003e\u003c/p\u003e\n\u003cp\u003eIncluding \u003ccode\u003eatuin wrapped\u003c/code\u003e, your year in shell history 🐢\u003c/p\u003e\n\u003cp\u003ethanks @daveeddy.com for the suggestion!\u003c/p\u003e\u003c/div\u003e\n\u003cdiv class=\"embed-card-meta\"\u003eBluesky Social · bsky.app\u003c/div\u003e\n\u003c/div\u003e\n\u003c/a\u003e\u003cp\u003e\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eAtuin v18.4 is out with an atuin wrapped command.\u003c/p\u003e\n\u003cp\u003eHere’s Ellie’s Wrapped.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/246f2dc6-4e46-410c-9d25-fa6ccc85f8f2.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/246f2dc6-4e46-410c-9d25-fa6ccc85f8f2.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eThis is a pretty sick command, I’ve only been using Atuin about as long as I’ve been on bazzite, so maybe 4 months, but here is my wrapped.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/434e1290-cf81-4ae5-abaf-34927006f3b6.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/434e1290-cf81-4ae5-abaf-34927006f3b6.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eComparing to Ellie, I’m surprised that I even have 126 package related commands, being on an immutable distro most of my packages come from the container, I don’t need to run packaging commands.  My cd is also super low, I use tmux sessions to take me where I need to be most of the time, which is a project’s root directory, It’s pretty rare to see me outside of a project root directory.\u003c/p\u003e\n\u003cp\u003eI’d venture to guess that nvim would be higher if it didn’t auto start on every tmux session as well.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://bsky.app/profile/ellie.wtf/post/3lecj36r5ps2x\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:6pz6ncxxtia36hrtbf24wzue/bafkreigfrzhv3ju3ynaugisqh5wc2qsharsqott5ru4i7tb53ha2fnerde\" alt=\"Ellie Huxtable (@ellie.wtf) — Atuin v18.4 is out now!\n\nIncluding `atuin wrapped`, your year in shell history 🐢\n\nthanks @daveeddy.com for the suggestion!\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003eEllie Huxtable (@ellie.wtf)\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eAtuin v18.4 is out now!\n\nIncluding `atuin wrapped`, your year in shell history 🐢\n\nthanks @daveeddy.com for the suggestion!\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003eBluesky Social \u0026middot; bsky.app\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nAtuin v18.4 is out with an atuin wrapped command.\n\n\nHere's Ellie's Wrapped.\n\n![image](https://dropper.waylonwalker.com/api/file/246f2dc6-4e46-410c-9d25-fa6ccc85f8f2.webp)\n\nThis is a pretty sick command, I've only been using Atuin about as long as I've been on bazzite, so maybe 4 months, but here is my wrapped.\n\n![image](https://dropper.waylonwalker.com/api/file/434e1290-cf81-4ae5-abaf-34927006f3b6.webp)\n\nComparing to Ellie, I'm surprised that I even have 126 package related commands, being on an immutable distro most of my packages come from the container, I don't need to run packaging commands.  My cd is also super low, I use tmux sessions to take me where I need to be most of the time, which is a project's root directory, It's pretty rare to see me outside of a project root directory.\n\nI'd venture to guess that nvim would be higher if it didn't auto start on every tmux session as well.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://bsky.app/profile/ellie.wtf/post/3lecj36r5ps2x",
      "date_published": "2024-12-28T06:29:12Z",
      "date_modified": "2024-12-28T06:29:12Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-474/",
      "url": "https://waylonwalker.com/thought-474/",
      "title": "💭 Hybrid Cloud Show – Episode 20 - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"IXUtIXYjFDM\" title=\"Hybrid Cloud Show – Episode 20\" playlabel=\"Play: Hybrid Cloud Show – Episode 20\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eRed Hat has donated the whole open alternative to docker to the CNCF, the hosts weigh in with thier opinions all being pretty positive as they seem to be a legitimate donation and not dumping crap on open source.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003epodman\u003c/li\u003e\n\u003cli\u003epodman-desktop\u003c/li\u003e\n\u003cli\u003ebuildah\u003c/li\u003e\n\u003cli\u003ecompose-fs\u003c/li\u003e\n\u003cli\u003epodman\u003c/li\u003e\n\u003cli\u003ebootc\u003c/li\u003e\n\u003cli\u003escopio\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePersonally I’ve been running podman exclusively at home since switching to Bazzite in August.  I’d like to use buildah in ci. I gave it a try, but was unable to swap out my use of kaniko for buildah, I will get there, but it was not quite as drop in as I wanted.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"IXUtIXYjFDM\" title=\"Hybrid Cloud Show – Episode 20\" playlabel=\"Play: Hybrid Cloud Show – Episode 20\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nRed Hat has donated the whole open alternative to docker to the CNCF, the hosts weigh in with thier opinions all being pretty positive as they seem to be a legitimate donation and not dumping crap on open source.\n\n* podman\n* podman-desktop\n* buildah\n* compose-fs\n* podman\n* bootc\n* scopio\n\nPersonally I've been running podman exclusively at home since switching to Bazzite in August.  I'd like to use buildah in ci. I gave it a try, but was unable to swap out my use of kaniko for buildah, I will get there, but it was not quite as drop in as I wanted.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=IXUtIXYjFDM",
      "date_published": "2024-12-28T04:58:50Z",
      "date_modified": "2024-12-28T04:58:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/thought-473/",
      "url": "https://waylonwalker.com/thought-473/",
      "title": "💭 are we cooked w/ o3? - YouTube",
      "content_html": "\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"kjOxkPl3RGo\" title=\"are we cooked w/ o3?\" playlabel=\"Play: are we cooked w/ o3?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eHoly shit these AGI models are incredibly expensive to run, require lots of wild hardware that there is not enough to go around, and requires shit tons of power to run.\u003c/p\u003e\n\u003cp\u003eNow more than ever is time to distinguish yourself with deep expertise, jack of all trades is being eaten by ai.  People with deep expertise are getting a jack of all trades bump from ai, not o3, just the regular stuff.\u003c/p\u003e\n\u003cdiv class=\"admonition note\"\u003e\n\u003cp class=\"admonition-title\"\u003eNote\u003c/p\u003e\n\u003cp\u003eThis post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\" data-preview=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\"\u003ethought\u003c/a\u003e. It’s a short note that I make\nabout someone else’s content online #thoughts\u003c/p\u003e\n\u003c/div\u003e\n",
      "content_text": "\n\u003cdiv class=\"embed-card embed-card-external embed-card-provider-youtube\"\u003e\n  \u003cdiv class=\"embed-card-rich\"\u003e\n\u003clite-youtube videoid=\"kjOxkPl3RGo\" title=\"are we cooked w/ o3?\" playlabel=\"Play: are we cooked w/ o3?\"\u003e\u003c/lite-youtube\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\nHoly shit these AGI models are incredibly expensive to run, require lots of wild hardware that there is not enough to go around, and requires shit tons of power to run.\n\nNow more than ever is time to distinguish yourself with deep expertise, jack of all trades is being eaten by ai.  People with deep expertise are getting a jack of all trades bump from ai, not o3, just the regular stuff.\n\n!!! note\n\n    This post is a \u003ca href=\"/thoughts/\" class=\"wikilink\" data-title=\"Thoughts\" data-description=\"These are generally my thoughts on a web page or some sort of url, except a rare few don\u0026#39;t have a link. These are dual published off of my...\" data-date=\"2024-04-01\"\u003ethought\u003c/a\u003e. It's a short note that I make\n    about someone else's content online #thoughts\n",
      "summary": "!https://www.youtube.com/watch?v=kjOxkPl3RGo",
      "date_published": "2024-12-27T16:09:32Z",
      "date_modified": "2024-12-27T16:09:32Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "ai",
        "thought"
      ]
    },
    {
      "id": "https://waylonwalker.com/setting-up-ucore-zfs/",
      "url": "https://waylonwalker.com/setting-up-ucore-zfs/",
      "title": "setting up ucore-zfs",
      "content_html": "\u003cp\u003eI just setup my oldest hardware on the newest hotest server distro ucore-zfs.\nThis is a gateway FX6860 manufactured in 2010.\u003c/p\u003e\n\u003ch2 id=\"immutable-is-the-future\"\u003eImmutable is the future \u003ca href=\"#immutable-is-the-future\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMy current boot log shows that I first started daily driving bazzite back in\nAugust 2024.  I’ve been hapily using it since my arch install was plaugued\nwith a crippling display driver error, or something that would lock the display\nfor minutes every 30s or so, it became unusable.  I switched because this is\nwhat I put my son on and it was working great for him.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ewaylon@razorcrest:~$ journalctl --list-boots\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eIDX BOOT ID                          FIRST ENTRY                 LAST ENTRY\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e-19 7e6e154d2609407da24fa12814eadbd7 Thu 2024-08-29 16:15:15 CDT Thu 2024-08-29 17:37:25 CDT\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eFour months later and I am really loving the immutable distro experience.  My\nbase system gets fresh reliable updates, and I barely install anything directly\non it, a handful of things are snaps or flatpaks from the discover store, but\nmy main workflow is now in distrobox.  It has been rock solid reliable, and\njust works.\u003c/p\u003e\n\u003ch2 id=\"the-hardware\"\u003eThe Hardware \u003ca href=\"#the-hardware\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThis gem is running a an intel i7-2600 (4) @ 3.80 ghz with 16gb of ram.  I’ve\nmaxed out the ram that the motherboard will allow me.  I may have even forgot\nabout this limitation and ordered a 2x32gb setup for it and it did nothing.\nThat’s now sitting in my new k3s master node.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/36b2d93e-ddb1-4a13-89bd-471cd5e42f14.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/36b2d93e-ddb1-4a13-89bd-471cd5e42f14.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eHere’s a B\u0026amp;H photo post of the machine, she is big and heavy but still working.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/75c30c6e-421b-4d99-8a22-1d552ca541fe.webp\" class=\"glightbox-link\" aria-label=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/75c30c6e-421b-4d99-8a22-1d552ca541fe.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI’m a big fan of keeping these old machines running and avoiding the e-waste\npile, great for running a home lab.  Admittedly this is one is probably on its\nlast leg, dell optiplexes are pretty cheap and run circles around this one, so\nthis one is become my experimental setup for trying new things like core-os.\u003c/p\u003e\n\u003ch2 id=\"get-password-hash\"\u003eGet Password Hash \u003ca href=\"#get-password-hash\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWe will need to create a password hash for the root user to put into our ignition file.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epodman run -ti --rm quay.io/coreos/mkpasswd --method\u003cspan class=\"o\"\u003e=\u003c/span\u003eyescrypt\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePassword:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003e$y$j9T$0\u003c/span\u003eZsoVynV7y0Z7/l6588Ba1\u003cspan class=\"nv\"\u003e$VZT0uCGP0CnYSX\u003c/span\u003e/EArCvYMuo3q.gnyOnk1RO6.HDNDB\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"get-ssh-pub-key\"\u003eGet SSH Pub Key \u003ca href=\"#get-ssh-pub-key\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGenerate an ssh key using the \u003ccode\u003essh-keygen\u003c/code\u003e command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e$ ssh-keygen -t ed25519 -C \u003cspan class=\"s2\"\u003e\u0026#34;waylon@waylonwalker.com\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eGenerating public/private ed25519 key pair.\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEnter file in which to save the key \u003cspan class=\"o\"\u003e(\u003c/span\u003e/var/home/core/.ssh/id_ed25519\u003cspan class=\"o\"\u003e)\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEnter passphrase \u003cspan class=\"o\"\u003e(\u003c/span\u003eempty \u003cspan class=\"k\"\u003efor\u003c/span\u003e no passphrase\u003cspan class=\"o\"\u003e)\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eEnter same passphrase again:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eYour identification has been saved in /var/home/core/.ssh/id_ed25519\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eYour public key has been saved in /var/home/core/.ssh/id_ed25519.pub\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe key fingerprint is:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eSHA256:xVJAVreKVILOnxTDxK88RyMwhdDCBMnjMSGU7rsAqwQ waylon@waylonwalker.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eThe key\u003cspan class=\"err\"\u003e\u0026#39;\u003c/span\u003es randomart image is:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+--\u003cspan class=\"o\"\u003e[\u003c/span\u003eED25519 256\u003cspan class=\"o\"\u003e]\u003c/span\u003e--+\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003eoo+*oo OBo+ .    \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e o* o *.\u003cspan class=\"o\"\u003e==\u003c/span\u003e . .   \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e.. + + oo+o .    \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e ..   o.o++.     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003eE      +S\u003cspan class=\"o\"\u003e=\u003c/span\u003e..     \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003eoo      * .      \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003eo..      o       \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e+.               \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e|\u003c/span\u003e...              \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e+----\u003cspan class=\"o\"\u003e[\u003c/span\u003eSHA256\u003cspan class=\"o\"\u003e]\u003c/span\u003e-----+\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow copy your public key into the ignition file from your local machine\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e$ cat ~/.ssh/id_ed25519.pub\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003essh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPY73r4EU9wm/26/rTpx/uvAyInmbQ/k+l04eadSahD0 waylon@waylonwalker.com\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"ucore-autorebasebutane\"\u003eucore-autorebase.butane \u003ca href=\"#ucore-autorebasebutane\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI got my ignition file from\n\u003ca href=\"https://github.com/ublue-os/ucore/blob/main/examples/ucore-autorebase.butane\" 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\"\u003eucore/ucore-autorebase\u003c/a\u003e.\nPut my secret values into it and used it.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ublue-os/ucore/blob/main/examples/ucore-autorebase.butane\" 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\"\u003ehttps://github.com/ublue-os/ucore/blob/main/examples/ucore-autorebase.butane\u003c/a\u003e\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003evariant: fcos\nversion: 1.4.0\npasswd:\n  users:\n    - name: core\n      ssh_authorized_keys:\n        - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPY73r4EU9wm/26/rTpx/uvAyInmbQ/k+l04eadSahD0 waylon@waylonwalker.com\n      password_hash: $y$j9T$0ZsoVynV7y0Z7/l6588Ba1$VZT0uCGP0CnYSX/EArCvYMuo3q.gnyOnk1RO6.HDNDB\nstorage:\n  directories:\n    - path: /etc/ucore-autorebase\n      mode: 0754\nsystemd:\n  units:\n    - name: ucore-unsigned-autorebase.service\n      enabled: true\n      contents: |\n        [Unit]\n        Description=uCore autorebase to unsigned OCI and reboot\n        ConditionPathExists=!/etc/ucore-autorebase/unverified\n        ConditionPathExists=!/etc/ucore-autorebase/signed\n        After=network-online.target\n        Wants=network-online.target\n        [Service]\n        Type=oneshot\n        StandardOutput=journal+console\n        ExecStart=/usr/bin/rpm-ostree rebase --bypass-driver ostree-unverified-registry:ghcr.io/ublue-os/ucore:stable\n        ExecStart=/usr/bin/touch /etc/ucore-autorebase/unverified\n        ExecStart=/usr/bin/systemctl disable ucore-unsigned-autorebase.service\n        ExecStart=/usr/bin/systemctl reboot\n        [Install]\n        WantedBy=multi-user.target\n    - name: ucore-signed-autorebase.service\n      enabled: true\n      contents: |\n        [Unit]\n        Description=uCore autorebase to signed OCI and reboot\n        ConditionPathExists=/etc/ucore-autorebase/unverified\n        ConditionPathExists=!/etc/ucore-autorebase/verified\n        After=network-online.target\n        Wants=network-online.target\n        [Service]\n        Type=oneshot\n        StandardOutput=journal+console\n        ExecStart=/usr/bin/rpm-ostree rebase --bypass-driver ostree-image-signed:docker://ghcr.io/ublue-os/ucore:stable\n        ExecStart=/usr/bin/touch /etc/ucore-autorebase/signed\n        ExecStart=/usr/bin/systemctl disable ucore-signed-autorebase.service\n        ExecStart=/usr/bin/systemctl reboot\n        [Install]\n        WantedBy=multi-user.target butane\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2 id=\"creating-an-ignition-file\"\u003eCreating an ignition file \u003ca href=\"#creating-an-ignition-file\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epodman run --interactive --rm --security-opt \u003cspan class=\"nv\"\u003elabel\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003edisable \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --volume \u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ePWD\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e:/pwd --workdir /pwd quay.io/coreos/butane:release \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        --pretty --strict ucore-autorebase.butane \u0026gt;transpiled_config.ign\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"getting-zfs\"\u003eGetting zfs \u003ca href=\"#getting-zfs\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow this is where I realized I went wrong and wished I would have paid\nattention to the autorebase.butane file, it did not use the zfs flavor ucore.\nLuckily they make it wildly easy to rebase between these base images.\u003c/p\u003e\n\u003cp\u003eI needed to run this to rebase into the zfs flavor.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e/usr/bin/rpm-ostree rebase --bypass-driver ostree-unverified-registry:ghcr.io/ublue-os/ucore:stable-zfs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eThis was the output.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecore@falcon-FX6860:~$ /usr/bin/rpm-ostree rebase --bypass-driver ostree-unverified-registry:ghcr.io/ublue-os/ucore:stable-zfs\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e====\u003c/span\u003e AUTHENTICATING FOR org.projectatomic.rpmostree1.rebase \u003cspan class=\"o\"\u003e====\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthentication is required to switch to a different base OS\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAuthenticating as: CoreOS Admin \u003cspan class=\"o\"\u003e(\u003c/span\u003ecore\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePassword:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"o\"\u003e====\u003c/span\u003e AUTHENTICATION \u003cspan class=\"nv\"\u003eCOMPLETE\u003c/span\u003e \u003cspan class=\"o\"\u003e====\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ePulling manifest: ostree-unverified-registry:ghcr.io/ublue-os/ucore:stable-zfs\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eImporting: ostree-unverified-registry:ghcr.io/ublue-os/ucore:stable-zfs \u003cspan class=\"o\"\u003e(\u003c/span\u003edigest: sha256:8ebae90f6844949044c026d7ba05c035956992b68e13bdcbd9158a37beda571e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eostree chunk layers already present: \u003cspan class=\"m\"\u003e51\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecustom layers needed: \u003cspan class=\"m\"\u003e2\u003c/span\u003e \u003cspan class=\"o\"\u003e(\u003c/span\u003e492.9 MB\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFetching layer sha256:67f3c0e0e0fe \u003cspan class=\"o\"\u003e(\u003c/span\u003e269.7 MB\u003cspan class=\"o\"\u003e)\u003c/span\u003e... \u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eFetching layer sha256:25992805e895 \u003cspan class=\"o\"\u003e(\u003c/span\u003e223.1 MB\u003cspan class=\"o\"\u003e)\u003c/span\u003e... \u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eStaging deployment... \u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eUpgraded:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  cockpit-bridge 330-1.fc41 -\u0026gt; 331-1.fc41\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  cockpit-networkmanager 330-1.fc41 -\u0026gt; 331-1.fc41\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  cockpit-selinux 330-1.fc41 -\u0026gt; 331-1.fc41\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  cockpit-storaged 330-1.fc41 -\u0026gt; 331-1.fc41\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  cockpit-system 330-1.fc41 -\u0026gt; 331-1.fc41\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eAdded:\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  groff-base-1.23.0-7.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  kmod-zfs-2.2.7-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libnvpair3-2.2.7-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libuutil3-2.2.7-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libzfs5-2.2.7-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  libzpool5-2.2.7-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  lm_sensors-libs-3.6.0-20.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  lzop-1.04-15.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  mbuffer-20241007-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-AutoLoader-5.74-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-B-1.89-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Capture-Tiny-0.48-21.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Carp-1.54-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Class-Struct-0.68-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Config-IniFiles-3.000003-14.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Data-Dumper-2.189-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Digest-1.20-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Digest-MD5-2.59-5.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-DynaLoader-1.56-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Encode-4:3.21-511.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Errno-1.38-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Exporter-5.78-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Fcntl-1.18-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-File-Basename-2.86-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-File-Path-2.18-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-File-Temp-1:0.231.100-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-File-stat-1.14-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-FileHandle-2.05-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Getopt-Long-1:2.58-2.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Getopt-Std-1.14-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-HTTP-Tiny-0.090-1.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-IO-1.55-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-IO-Socket-IP-0.43-1.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-IO-Socket-SSL-2.089-1.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-IO-stringy-2.113-15.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-IPC-Open3-1.22-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-MIME-Base32-1.303-21.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-MIME-Base64-3.16-511.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-NDBM_File-1.17-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Net-SSLeay-1.94-7.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-POSIX-2.20-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-PathTools-3.91-511.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Pod-Escapes-1:1.07-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Pod-Perldoc-3.28.01-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Pod-Simple-1:3.45-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Pod-Usage-4:2.03-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Scalar-List-Utils-5:1.68-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-SelectSaver-1.02-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Socket-4:2.038-511.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Storable-1:3.32-511.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Symbol-1.09-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Sys-Hostname-1.25-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Term-ANSIColor-5.01-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Term-Cap-1.18-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Text-ParseWords-3.31-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Text-Tabs+Wrap-2024.001-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-Time-Local-2:1.350-511.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-URI-5.30-1.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-base-2.27-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-constant-1.33-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-if-0.61.000-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-interpreter-4:5.40.0-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-libnet-3.15-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-libs-4:5.40.0-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-locale-1.12-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-mro-1.29-512.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-overload-1.37-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-overloading-0.02-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-parent-1:0.242-1.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-podlators-1:6.0.2-2.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  perl-vars-1.05-512.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  pv-1.8.14-2.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-cffi-1.17.0-1.fc41.x86_64\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-ply-3.11-25.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-pycparser-2.20-18.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  python3-pyzfs-2.2.7-1.fc41.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  sanoid-2.2.0-1.fc41.ucore2.noarch\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"lin