{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Blog",
  "home_page_url": "https://new.waylonwalker.com/blog/",
  "feed_url": "https://new.waylonwalker.com/blog/feed.json",
  "description": "Full Blog Posts",
  "authors": [
    {
      "name": "Waylon Walker"
    }
  ],
  "items": [
    {
      "id": "https://new.waylonwalker.com/t-handle-wire-puller/",
      "url": "https://new.waylonwalker.com/t-handle-wire-puller/",
      "title": "T Handle Wire Puller",
      "content_html": "\u003cp\u003eI’ve been fighting not having a proper\npick/hook in my toolbox for a long time.  This fathers day weekend my son\npulled out an old box of rc plane supplies from my days trying to build planes\nlike flight test.  Inside there was a pack of piano wire.\u003c/p\u003e\n\u003cdiv class=\"admonition success\"\u003e\n\u003cp class=\"admonition-title\"\u003e\u003ca class=\"wikilink\" data-date=\"2025-10-30\" data-description=\"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...\" data-title=\"Rules\" href=\"/rules/\" data-preview=\"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...\"\u003eRules\u003c/a\u003e-8\u003c/p\u003e\n\u003cp\u003eNeed a tool make a tool.\u003c/p\u003e\n\u003c/div\u003e\n\u003cp\u003eHe had pulled this out while I had the soldering iron hot plucking away at a\nkeeb build that I’ve had sitting idle on the workbench for a long time.  The\ndream of having several identical working builds at the same time is very close\nto fruition, I just need some more work on the clone.\u003c/p\u003e\n\u003cp\u003e\u003ca class=\"wikilink\" data-description=\"All posts with the tag \u0026#34;keeb\u0026#34;\" data-title=\"Posts tagged: keeb\" href=\"/tags/keeb/\" data-preview=\"All posts with the tag \u0026#34;keeb\u0026#34;\"\u003ePosts tagged: keeb\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI was struggling to pull wires through traces of 3d prints.  You see I was once\na mechanical engineer, not electrical, so 3d modeling is my hammer that I can\nturn into a tool for any solution, and I’ve just not put the time into learning\npcb design.  Someday maybe.  I always just take some scrap copper make a little\nlook and twist it around until I can get it close enough to pull with some\ntweezers.\u003c/p\u003e\n\u003cp\u003eAs he has this box out and I see the piano wire, its the perfect stiff wire to\nuse for the job.  only its so thick it doesn’t even fit down inside the traces.\nBut after a bit of filing bending a hook and handle its proving to be a useful\ntool in the handwired keyboard toolbelt.\u003c/p\u003e\n\u003cfigure class=\"embed-figure\"\u003e\n  \u003ca class=\"u-url\" href=\"/shots/t-handle-wire-puller/\"\u003e\n    \u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/162e035b-4711-4cfc-892b-e613dc364b83.webp?w=1200\" alt=\"T Handle Wire Puller\" width=\"1200\" loading=\"lazy\"/ data-glightbox=\"description: T Handle Wire Puller\"\u003e\n  \u003c/a\u003e\n  \u003cfigcaption\u003eT Handle Wire Puller, with just the right hook on the end, and filed down just thin enough to slip in and grab wire.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cp\u003eNotice I gave the hook a bit of paint, Not only does this make it easier to\nfind, but it signifies, this is my tool, its not just a random bit of wire, its\nsomething that someone put some time and care into.\u003c/p\u003e\n\u003cfigure class=\"embed-figure\"\u003e\n  \u003ca class=\"u-url\" href=\"/shots/t-handle-wire-puller-in-action/\"\u003e\n    \u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/8395c79d-6094-4c51-8863-43748376ba9c.webp?w=1200\" alt=\"T Handle Wire Puller In Action\" width=\"1200\" loading=\"lazy\"/ data-glightbox=\"description: T Handle Wire Puller In Action\"\u003e\n  \u003c/a\u003e\n  \u003cfigcaption\u003eT Handle Wire Puller in Action, sliding in to grab some fresh copper.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cp\u003eIts working great so far with zero signs of benging, the piano wire is really\nhard to get bent in and out of shape unlike the soft copper wire I was using\nout of convenience.\u003c/p\u003e\n",
      "content_text": "\n\nI've been fighting not having a proper\npick/hook in my toolbox for a long time.  This fathers day weekend my son\npulled out an old box of rc plane supplies from my days trying to build planes\nlike flight test.  Inside there was a pack of piano wire.\n\n!!! success  \u003ca href=\"/rules/\" class=\"wikilink\" data-title=\"Rules\" data-description=\"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...\" data-date=\"2025-10-30\"\u003eRules\u003c/a\u003e-8\n\n    Need a tool make a tool.\n\nHe had pulled this out while I had the soldering iron hot plucking away at a\nkeeb build that I've had sitting idle on the workbench for a long time.  The\ndream of having several identical working builds at the same time is very close\nto fruition, I just need some more work on the clone.\n\n\u003ca href=\"/tags/keeb/\" class=\"wikilink\" data-title=\"Posts tagged: keeb\" data-description=\"All posts with the tag \u0026#34;keeb\u0026#34;\"\u003ePosts tagged: keeb\u003c/a\u003e\n\nI was struggling to pull wires through traces of 3d prints.  You see I was once\na mechanical engineer, not electrical, so 3d modeling is my hammer that I can\nturn into a tool for any solution, and I've just not put the time into learning\npcb design.  Someday maybe.  I always just take some scrap copper make a little\nlook and twist it around until I can get it close enough to pull with some\ntweezers.\n\nAs he has this box out and I see the piano wire, its the perfect stiff wire to\nuse for the job.  only its so thick it doesn't even fit down inside the traces.\nBut after a bit of filing bending a hook and handle its proving to be a useful\ntool in the handwired keyboard toolbelt.\n\n\u003cfigure class=\"embed-figure\"\u003e\n  \u003ca href=\"/shots/t-handle-wire-puller/\" class=\"u-url\"\u003e\n    \u003cimg src=\"https://dropper.waylonwalker.com/file/162e035b-4711-4cfc-892b-e613dc364b83.webp?w=1200\" alt=\"T Handle Wire Puller\" width=\"1200\" loading=\"lazy\"\u003e\n  \u003c/a\u003e\n  \u003cfigcaption\u003eT Handle Wire Puller, with just the right hook on the end, and filed down just thin enough to slip in and grab wire.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\nNotice I gave the hook a bit of paint, Not only does this make it easier to\nfind, but it signifies, this is my tool, its not just a random bit of wire, its\nsomething that someone put some time and care into.\n\n\u003cfigure class=\"embed-figure\"\u003e\n  \u003ca href=\"/shots/t-handle-wire-puller-in-action/\" class=\"u-url\"\u003e\n    \u003cimg src=\"https://dropper.waylonwalker.com/file/8395c79d-6094-4c51-8863-43748376ba9c.webp?w=1200\" alt=\"T Handle Wire Puller In Action\" width=\"1200\" loading=\"lazy\"\u003e\n  \u003c/a\u003e\n  \u003cfigcaption\u003eT Handle Wire Puller in Action, sliding in to grab some fresh copper.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\n\nIts working great so far with zero signs of benging, the piano wire is really\nhard to get bent in and out of shape unlike the soft copper wire I was using\nout of convenience.\n",
      "summary": "I've been fighting not having a proper pick/hook in my toolbox for a long time. This fathers day weekend my son pulled out an old box of rc plane supplies...",
      "date_published": "2026-06-21T15:54:42Z",
      "date_modified": "2026-06-21T15:54:42Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "keeb"
      ]
    },
    {
      "id": "https://new.waylonwalker.com/keys-waylonwalker-com/",
      "url": "https://new.waylonwalker.com/keys-waylonwalker-com/",
      "title": "Keys.waylonwalker.com",
      "content_html": "\u003cp\u003eToday I got sick of my go to online \u003ca href=\"https://www.keyboardtester.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.keyboardtester.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.keyboardtester.com.png\" class=\"has-avatar  has-avatar-before\"\u003ekeyboard\ntester\u003c/a\u003e not supporting holds and fighting an\nissue with holds on one of my boards, I vibed out a replacement.  I did a bit\nof work with it to get it how I wanted.  gpt5.4 still likes to make lots of\ncards and build readable sites with a reasonable width for reading, not full\npage apps.\u003c/p\u003e\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca class=\"embed-card-link\" href=\"https://keys.waylonwalker.com\" rel=\"noopener noreferrer\" target=\"_blank\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg class=\"glightbox\" src=\"https://dropper.wayl.one/file/b4b02b3c-3df8-4f9c-8f7f-bd2d403c089d.webp\" alt=\"keyboard tester — A keyboard tester that works for me, how I like it\" loading=\"lazy\"/ data-glightbox=\"description: keyboard tester — A keyboard tester that works for me, how I like it\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ekeyboard tester\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA keyboard tester that works for me, how I like it\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekeys.waylonwalker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cp\u003eThe main feature is to be able to see when alt+key or shift+key is pressed, the\nkeyboard tester was not able to do this.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.wayl.one/file/73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.mp4\" class=\"glightbox-link\" aria-label=\"73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.mp4\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.wayl.one/file/73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.wayl.one/file/73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.mp4\" type=\"video/mp4\"\u003e73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.mp4\u003c/video\u003e\u003c/a\u003e\n\u003cfigcaption\u003e\u003cp\u003eHere is a video of me using it.\u003c/p\u003e\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cp\u003eI tend to use keyboard tester a lot as I build a lot of weird keyboards so I\nsuspect this one to get a lot of use and may grow over time, but for now it\nworks good enough for me.\u003c/p\u003e\n\u003cp\u003eI can already think of a whole list of features like supporting keycodes for\njs, pygame, zmk, qmk.  But for now I’m just building what I need and not\novercomplicating it.\u003c/p\u003e\n",
      "content_text": "\nToday I got sick of my go to online [keyboard\ntester](https://www.keyboardtester.com/) not supporting holds and fighting an\nissue with holds on one of my boards, I vibed out a replacement.  I did a bit\nof work with it to get it how I wanted.  gpt5.4 still likes to make lots of\ncards and build readable sites with a reasonable width for reading, not full\npage apps.\n\n\u003cdiv class=\"embed-card embed-card-external\"\u003e\n  \u003ca href=\"https://keys.waylonwalker.com\" class=\"embed-card-link\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cdiv class=\"embed-card-image\"\u003e\n      \u003cimg src=\"https://dropper.wayl.one/file/b4b02b3c-3df8-4f9c-8f7f-bd2d403c089d.webp\" alt=\"keyboard tester — A keyboard tester that works for me, how I like it\" loading=\"lazy\"\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"embed-card-content\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003ekeyboard tester\u003c/div\u003e\n      \u003cdiv class=\"embed-card-description\"\u003eA keyboard tester that works for me, how I like it\u003c/div\u003e\n      \u003cdiv class=\"embed-card-meta\"\u003ekeys.waylonwalker.com\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nThe main feature is to be able to see when alt+key or shift+key is pressed, the\nkeyboard tester was not able to do this.\n\n![73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.mp4](https://dropper.wayl.one/file/73e71d2d-eaf9-4a0a-9e04-0039a1df0b26.mp4)\nHere is a video of me using it.\n\nI tend to use keyboard tester a lot as I build a lot of weird keyboards so I\nsuspect this one to get a lot of use and may grow over time, but for now it\nworks good enough for me.\n\nI can already think of a whole list of features like supporting keycodes for\njs, pygame, zmk, qmk.  But for now I'm just building what I need and not\novercomplicating it.\n\n\n",
      "summary": "Today I got sick of my go to online keyboard tester not supporting holds and fighting an issue with holds on one of my boards, I vibed out a replacement. I...",
      "date_published": "2026-06-20T20:17:10Z",
      "date_modified": "2026-06-20T20:17:10Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "dev",
        "webdev"
      ]
    },
    {
      "id": "https://new.waylonwalker.com/malicious-aur-packages-jun-2026/",
      "url": "https://new.waylonwalker.com/malicious-aur-packages-jun-2026/",
      "title": "Malicious Aur Packages Jun 2026",
      "content_html": "\u003cp\u003eRecent Arch linux vulnerabilities are a good reminder of a few things.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003ca href=\"/aur/\" class=\"glossary-term\" title=\"Arch User Repository, a collection of community maintained packages for archlinux.\"\u003eAUR\u003c/a\u003e is not the official package repo\u003c/li\u003e\n\u003cli\u003eThe AUR is community driven\u003c/li\u003e\n\u003cli\u003eAUR packages are not always safe\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eThe first thing I’m doing to stop myself from running any aur updates\nautomatically is removing any arch helper.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esudo pacman -Rns yay paru paru-bin\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eCurrently the reported vulnerabilities are supply chain attacks limited to the\naur, keep your arch system up do date, \u003cstrong\u003eBUT\u003c/strong\u003e do not update packages from the\nAUR right now.  In fact I’m auditing my aur usage and removing anything I have\nnot used in awhile.\u003c/p\u003e\n\u003cp\u003eHere is a nice script I’m using to walk through my packages and get rid of\nthings I installed and probably don’t need anymore.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epacman -Qemq \u003cspan class=\"p\"\u003e|\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  fzf -m --preview \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    echo \u0026#34;== package ==\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    pacman -Qi {} 2\u0026gt;/dev/null\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    echo\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    echo \u0026#34;== required by ==\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    pacman -Qi {} 2\u0026gt;/dev/null | grep \u0026#34;Required By\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#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  xargs -r -o sudo pacman -Rns\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eSupply chain attacks are getting real scary in 2026, maybe we should listen to\nGinger Bill a bit closer.\u003c/p\u003e\n",
      "content_text": "\nRecent Arch linux vulnerabilities are a good reminder of a few things.\n\n1. AUR is not the official package repo\n2. The AUR is community driven\n3. AUR packages are not always safe\n\nThe first thing I'm doing to stop myself from running any aur updates\nautomatically is removing any arch helper.\n\n``` bash\nsudo pacman -Rns yay paru paru-bin\n```\n\nCurrently the reported vulnerabilities are supply chain attacks limited to the\naur, keep your arch system up do date, **BUT** do not update packages from the\nAUR right now.  In fact I'm auditing my aur usage and removing anything I have\nnot used in awhile.\n\nHere is a nice script I'm using to walk through my packages and get rid of\nthings I installed and probably don't need anymore.\n\n``` bash\npacman -Qemq |\n  fzf -m --preview '\n    echo \"== package ==\"\n    pacman -Qi {} 2\u003e/dev/null\n    echo\n    echo \"== required by ==\"\n    pacman -Qi {} 2\u003e/dev/null | grep \"Required By\"\n  ' |\n  xargs -r -o sudo pacman -Rns\n```\n\nSupply chain attacks are getting real scary in 2026, maybe we should listen to\nGinger Bill a bit closer.\n",
      "summary": "Recent Arch linux vulnerabilities are a good reminder of a few things.",
      "date_published": "2026-06-16T20:27:26Z",
      "date_modified": "2026-06-16T20:27:26Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "linux"
      ]
    },
    {
      "id": "https://new.waylonwalker.com/prompt-seagulls/",
      "url": "https://new.waylonwalker.com/prompt-seagulls/",
      "title": "Prompt Seagulls",
      "content_html": "\u003cp\u003eI was listening to @syntaxfm this morning and @wesbos said at\n\u003ca href=\"https://www.youtube.com/watch?v=8A2MCNKC_hQ\u0026amp;t=328s\" 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\"\u003e328s\u003c/a\u003e “The prompt seagulls\nare driving me nutty”.  100% hard agree Wes.  Now I didnt just come off of a\nconference where they dropped fable 5.  I’ve not logged into twitter in months,\nbut I see it around work.\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"a-hrefrule-1-classwikilink-data-titlethere-is-no-such-thing-as-magic-data-descriptionmagic-exists-to-describe-things-that-are-beyond-our-current-understanding-when-you-describe-your-solution-to-a-problem-as-magic-you-are-admitting-that-you-data-date2026-06-14there-is-no-such-thing-as-magica\"\u003e\u003ca class=\"wikilink\" data-date=\"2026-06-14\" data-description=\"Magic exists to describe things that are beyond our current understanding. When you describe your solution to a problem as magic, you are admitting that you...\" data-title=\"There is no such thing as magic\" href=\"/rule-1/\" data-preview=\"Magic exists to describe things that are beyond our current understanding. When you describe your solution to a problem as magic, you are admitting that you...\"\u003eThere is no such thing as magic\u003c/a\u003e \u003ca href=\"#a-hrefrule-1-classwikilink-data-titlethere-is-no-such-thing-as-magic-data-descriptionmagic-exists-to-describe-things-that-are-beyond-our-current-understanding-when-you-describe-your-solution-to-a-problem-as-magic-you-are-admitting-that-you-data-date2026-06-14there-is-no-such-thing-as-magica\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAsking for the prompt as a first question here, is a clear sign you are looking\nfor magic.  What are the magical incantations I must pass to all master clanker\nto get it to do the things that I want.  Wrong, there is no magic prompt to\nget impressive results, its people that know and understand their craft that\nget amazing results.  They have taste.  They have design in mind, They see\nwhat the end product should be.  They are guiding the model to do what they\nwant and are not surprised when they get it.\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"process\"\u003eprocess \u003ca href=\"#process\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNo one is one shotting their work and kicking up their feet for the other 39\n3/4 hours of the work week.  Theres process and methodology to it.  Develop the\nright skill files, the right AGENTS.md, instructions, all of the other things.\nThis puts the ball in your court telling the models how you want these things\ndone without deep prompting.\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"taste\"\u003etaste \u003ca href=\"#taste\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf you want to build products that humans use and enjoy you must bring some\nlevel of domain expertise.  You should know a bit about your product, your\ncustomer, and how the underlying tech you are working with works.  You should\nunderstand the basics of how websites are built and laid out or how a cli\noperates.  If you don’t you will inevitably build out something that does the\njob, but is not intuitive, does not look good, or feel good, and no one can\nfigure out how to use it, cause no one, especially these days, no one is\nreading the docs.\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"testing\"\u003etesting \u003ca href=\"#testing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eActually try to use your product, can you?  Can you hit errors?  You probably\nshould be able to one way or another if you are accepting input from a user\nthey are bound to be able to input something you cannot just automatically\nrecover from.  In these cases does it make sense, can you easily see what you\nwere supposed to do, or why it was wrong?  Does it work on various resolutions?\nThis goes for about everything these days, web or terminal.  Can you read the\noutput on a full screen easily?  What about a half screen?  If you’re a Philz\ncoffee mac fanboi with slinging a top of the line 8k display, does it even work\non what a mere mortal might be trying to use?\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"good-starting-point\"\u003eGood starting point \u003ca href=\"#good-starting-point\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAi repeats patterns it finds, its very good at repeating patterns it finds\nnearby.  If your existing codebase is not consistent, and riddled with\npitfalls, it will be replicated and be digging larger holes for you to dig up\nlater.\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"old-school-checks\"\u003eOld School Checks \u003ca href=\"#old-school-checks\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAutomated checks are a hard requirement for me these days, lint, type check,\nsecret scan, cve scanning.  All of these things help drive consistency and\nhelps reliability.\u003c/p\u003e\n\u003cdiv class=\"admonition warning\"\u003e\n\u003cp class=\"admonition-title\"\u003eprompt-seagulls\u003c/p\u003e\n\u003cp\u003e“Prompt, PR-ompt, promt, PROMT”\u003c/p\u003e\n\u003c/div\u003e\n\u003ch2 id=\"actually-read-some-of-the-code\"\u003eActually Read Some of the code \u003ca href=\"#actually-read-some-of-the-code\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eNow for the most controversial, un-vibe coder thing… Actually try to read the\ncode.  You might notice some things.  Somethings like regression testing, and\nsupporting old versions, old formats, duplicating schemas.  AI is really good\nat waking up from a cold state, assuming everything it sees is in production\nwith real users and writing a lot of code.  It will do things like supporting\nthe version that it made 5 minutes ago and never shipped for eternity.  Have\nyour clankers review too, that’s also fine, not a substitute for you taking a\nlook.  Even if you are not finding the tiny bugs here, you will understand more\nabout how your project works, the direction its going, and be able to catch\ndirectionally wrong shifts.\u003c/p\u003e\n",
      "content_text": "\nI was listening to @syntaxfm this morning and @wesbos said at\n[328s](https://www.youtube.com/watch?v=8A2MCNKC_hQ\u0026t=328s) \"The prompt seagulls\nare driving me nutty\".  100% hard agree Wes.  Now I didnt just come off of a\nconference where they dropped fable 5.  I've not logged into twitter in months,\nbut I see it around work.\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n## \u003ca href=\"/rule-1/\" class=\"wikilink\" data-title=\"There is no such thing as magic\" data-description=\"Magic exists to describe things that are beyond our current understanding. When you describe your solution to a problem as magic, you are admitting that you...\" data-date=\"2026-06-14\"\u003eThere is no such thing as magic\u003c/a\u003e\n\nAsking for the prompt as a first question here, is a clear sign you are looking\nfor magic.  What are the magical incantations I must pass to all master clanker\nto get it to do the things that I want.  Wrong, there is no magic prompt to\nget impressive results, its people that know and understand their craft that\nget amazing results.  They have taste.  They have design in mind, They see\nwhat the end product should be.  They are guiding the model to do what they\nwant and are not surprised when they get it.\n\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n## process\n\nNo one is one shotting their work and kicking up their feet for the other 39\n3/4 hours of the work week.  Theres process and methodology to it.  Develop the\nright skill files, the right AGENTS.md, instructions, all of the other things.\nThis puts the ball in your court telling the models how you want these things\ndone without deep prompting.\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n## taste\n\nIf you want to build products that humans use and enjoy you must bring some\nlevel of domain expertise.  You should know a bit about your product, your\ncustomer, and how the underlying tech you are working with works.  You should\nunderstand the basics of how websites are built and laid out or how a cli\noperates.  If you don't you will inevitably build out something that does the\njob, but is not intuitive, does not look good, or feel good, and no one can\nfigure out how to use it, cause no one, especially these days, no one is\nreading the docs.\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n## testing\n\nActually try to use your product, can you?  Can you hit errors?  You probably\nshould be able to one way or another if you are accepting input from a user\nthey are bound to be able to input something you cannot just automatically\nrecover from.  In these cases does it make sense, can you easily see what you\nwere supposed to do, or why it was wrong?  Does it work on various resolutions?\nThis goes for about everything these days, web or terminal.  Can you read the\noutput on a full screen easily?  What about a half screen?  If you're a Philz\ncoffee mac fanboi with slinging a top of the line 8k display, does it even work\non what a mere mortal might be trying to use?\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n##  Good starting point\n\nAi repeats patterns it finds, its very good at repeating patterns it finds\nnearby.  If your existing codebase is not consistent, and riddled with\npitfalls, it will be replicated and be digging larger holes for you to dig up\nlater.\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n##  Old School Checks\n\nAutomated checks are a hard requirement for me these days, lint, type check,\nsecret scan, cve scanning.  All of these things help drive consistency and\nhelps reliability.\n\n!!! warning prompt-seagulls\n\n    \"Prompt, PR-ompt, promt, PROMT\"\n\n##  Actually Read Some of the code\n\nNow for the most controversial, un-vibe coder thing... Actually try to read the\ncode.  You might notice some things.  Somethings like regression testing, and\nsupporting old versions, old formats, duplicating schemas.  AI is really good\nat waking up from a cold state, assuming everything it sees is in production\nwith real users and writing a lot of code.  It will do things like supporting\nthe version that it made 5 minutes ago and never shipped for eternity.  Have\nyour clankers review too, that's also fine, not a substitute for you taking a\nlook.  Even if you are not finding the tiny bugs here, you will understand more\nabout how your project works, the direction its going, and be able to catch\ndirectionally wrong shifts.\n\n\n",
      "summary": "I was listening to @syntaxfm this morning and @wesbos said at 328s \"The prompt seagulls are driving me nutty\". 100% hard agree Wes. Now I didnt just come off...",
      "date_published": "2026-06-16T08:16:58Z",
      "date_modified": "2026-06-16T08:16:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "tech"
      ]
    },
    {
      "id": "https://new.waylonwalker.com/agents-are-never-done/",
      "url": "https://new.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://new.waylonwalker.com/carry/",
      "url": "https://new.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://new.waylonwalker.com/i-built-a-tmux-session-switcher/",
      "url": "https://new.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=\"image\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/file/7c5765a0-126d-430a-ad86-eb83eb440e1b.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\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 class=\"wikilink\" data-date=\"2026-03-04\" data-description=\"** ses***** 3/4/2026, 8:52:32 PM\" data-title=\"Ses_3444b09b1ffexter3elfg5qqtg\" href=\"/ses-3444b09b1ffexter3elfg5qqtg/\" 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![image](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-04T00:00:00Z",
      "date_modified": "2026-03-04T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "cli"
      ]
    },
    {
      "id": "https://new.waylonwalker.com/verify/",
      "url": "https://new.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\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\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://new.waylonwalker.com/top4/",
      "url": "https://new.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://new.waylonwalker.com/yep/",
      "url": "https://new.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 class=\"embed-card-link\" href=\"/nope/\"\u003e\n    \u003c/a\u003e\u003cdiv class=\"embed-card-content\"\u003e\u003ca class=\"embed-card-link\" href=\"/nope/\"\u003e\n      \u003cdiv class=\"embed-card-title\"\u003e/nope\u003c/div\u003e\n      \u003c/a\u003e\u003cdiv class=\"embed-card-description\"\u003e\u003ca class=\"embed-card-link\" href=\"/nope/\"\u003eInspired by \u003c/a\u003e\u003ca class=\"mention\" data-avatar=\"https://baty.net/img/opengraph.jpg\" data-bio=\"Jack Baty\u0026amp;#39;s blog — posts, journal, notes.\" data-handle=\"@baty\" data-name=\"baty.net\" href=\"https://baty.net/\"\u003e@baty\u003c/a\u003e\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  \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 \u003ca href=\"https://baty.net/\" class=\"mention\" data-name=\"baty.net\" data-bio=\"Jack Baty\u0026amp;#39;s blog — posts, journal, notes.\" data-avatar=\"https://baty.net/img/opengraph.jpg\" data-handle=\"@baty\"\u003e@baty\u003c/a\u003e\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://new.waylonwalker.com/nope/",
      "url": "https://new.waylonwalker.com/nope/",
      "title": "/nope",
      "content_html": "\u003cp\u003eInspired by \u003ca class=\"mention\" data-avatar=\"https://baty.net/img/opengraph.jpg\" data-bio=\"Jack Baty\u0026amp;#39;s blog — posts, journal, notes.\" data-handle=\"@baty\" data-name=\"baty.net\" href=\"https://baty.net/\"\u003e@baty\u003c/a\u003e’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 class=\"embed-card-link\" href=\"/yep/\"\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 \u003ca href=\"https://baty.net/\" class=\"mention\" data-name=\"baty.net\" data-bio=\"Jack Baty\u0026amp;#39;s blog — posts, journal, notes.\" data-avatar=\"https://baty.net/img/opengraph.jpg\" data-handle=\"@baty\"\u003e@baty\u003c/a\u003e'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://new.waylonwalker.com/first-w-in-brotato/",
      "url": "https://new.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=\"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\"\u003eimage\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![image](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-11T00:00:00Z",
      "date_modified": "2026-02-11T00:00:00Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ],
      "tags": [
        "gaming"
      ]
    },
    {
      "id": "https://new.waylonwalker.com/pm-not-babysitter/",
      "url": "https://new.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://new.waylonwalker.com/agent-management-is-exhausting/",
      "url": "https://new.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://new.waylonwalker.com/stop-using-boomer-ai/",
      "url": "https://new.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://new.waylonwalker.com/mentions/",
      "url": "https://new.waylonwalker.com/mentions/",
      "title": "Mentions",
      "content_html": "\u003cp\u003eI can now just mention people from my \u003ca class=\"wikilink\" data-date=\"2024-05-30\" data-description=\"This post is a work in progress.\" data-title=\"markata\" href=\"/markata/\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e  \u003ca class=\"wikilink\" data-date=\"2021-11-20\" data-description=\"Husband, dad of two, and hobbyist builder of things on the internet.\" data-title=\"Waylon Walker\" href=\"/about/\" data-preview=\"Husband, dad of two, and hobbyist builder of things on the internet.\"\u003eWaylon Walker\u003c/a\u003e \u003ca class=\"wikilink\" data-description=\"Blogs and feeds I follow\" data-title=\"Blogroll\" href=\"/blogroll/\" data-preview=\"Blogs and feeds I follow\"\u003eBlogroll\u003c/a\u003e like \u003ca class=\"mention  has-avatar has-avatar-before\" data-handle=\"@simonwillison\" data-name=\"Simon Willison’s Weblog\" href=\"https://simonwillison.net\" 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@simonwillison\u003c/a\u003e or @swyx.io\u003c/p\u003e\n\u003cp\u003e\u003ca class=\"wikilink\" data-date=\"2025-01-12\" 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-title=\"/now\" href=\"/now/\" 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 \u003ca href=\"/blogroll/\" class=\"wikilink\" data-title=\"Blogroll\" data-description=\"Blogs and feeds I follow\"\u003eBlogroll\u003c/a\u003e like \u003ca href=\"https://simonwillison.net\" class=\"mention\" data-name=\"Simon Willison’s Weblog\" data-handle=\"@simonwillison\"\u003e@simonwillison\u003c/a\u003e 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://new.waylonwalker.com/what-your-coding-tool-says-about-you/",
      "url": "https://new.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://new.waylonwalker.com/dont-trust-users-tokens/",
      "url": "https://new.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://new.waylonwalker.com/ai/",
      "url": "https://new.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 class=\"wikilink\" data-date=\"2024-05-30\" data-description=\"This post is a work in progress.\" data-title=\"markata\" href=\"/markata/\" 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 class=\"wikilink\" data-date=\"2025-11-09\" 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-title=\"Techbrophobic\" href=\"/techbrophobic/\" 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://new.waylonwalker.com/og-sample/",
      "url": "https://new.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 class=\"wikilink\" data-date=\"2024-05-30\" data-description=\"This post is a work in progress.\" data-title=\"markata\" href=\"/markata/\" 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 class=\"wikilink\" data-description=\"All posts with the tag \u0026#34;shots\u0026#34;\" data-title=\"Posts tagged: shots\" href=\"/tags/shots/\" 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"
      ]
    }
  ]
}