<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Daily Notes</title>
  <id>https://waylonwalker.com/daily/atom.xml</id>
  <updated>2026-08-27T00:00:00Z</updated>
  <subtitle>Daily notes posts</subtitle>
  <link href="https://waylonwalker.com/daily/" rel="alternate" type="text/html"></link>
  <link href="https://waylonwalker.com/daily/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>2026-08-27 Notes</title>
    <id>https://waylonwalker.com/2026-08-27-notes/</id>
    <updated>2026-08-27T00:00:00Z</updated>
    <published>2026-08-27T00:00:00Z</published>
    <link href="https://waylonwalker.com/2026-08-27-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">notes for 2026-08-27</summary>
    <content type="html">&lt;h2 id=&#34;plaindown&#34;&gt;plaindown &lt;a href=&#34;#plaindown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;working on plaindown performance, and things are actually feeling much better as I type, it actually does feel like a huge difference until we hit a huge lag spike.  Lag spikes are getting fewer and fewer in between.&lt;/p&gt;&#xA;&lt;p&gt;current input delay is 65ms longest is 995ms, which is about what I’m feeling. The one spike was about a second, my p50 is 9ms and p95 at 19ms feels very snappy.&lt;/p&gt;&#xA;&lt;p&gt;The thing we are missing next is templates being ready immediately.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/897743a6-a8d4-4d68-9d87-33e2f4459527.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;897743a6-a8d4-4d68-9d87-33e2f4459527.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/897743a6-a8d4-4d68-9d87-33e2f4459527.webp&#34; alt=&#34;897743a6-a8d4-4d68-9d87-33e2f4459527.webp&#34;/ data-glightbox=&#34;description: 897743a6-a8d4-4d68-9d87-33e2f4459527.webp&#34;&gt;&lt;/a&gt;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2026-08-25 Notes</title>
    <id>https://waylonwalker.com/2026-08-25-notes/</id>
    <updated>2026-08-25T00:00:00Z</updated>
    <published>2026-08-25T00:00:00Z</published>
    <link href="https://waylonwalker.com/2026-08-25-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">notes for 2026-08-25</summary>
    <content type="html">&lt;h2 id=&#34;mdwaylonwalkercom&#34;&gt;md.waylonwalker.com &lt;a href=&#34;#mdwaylonwalkercom&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Getting some great improvements on the lag spikes this morning.&lt;/p&gt;&#xA;&lt;h2 id=&#34;another-theo-banger&#34;&gt;Another @theo banger &lt;a href=&#34;#another-theo-banger&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Automatic memory sucks, it chooses the wrong thing to keep, rarely references what it does keep, then when it does choose to reference something its not the right thing anyways.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=Jf54k7tFeEc&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://www.youtube.com/watch?v=Jf54k7tFeEc&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=Jf54k7tFeEc&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Turn off Claude Code’s Memory&lt;/a&gt;&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/0b388888-b003-4c42-adfa-c88d2117cc74.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;0b388888-b003-4c42-adfa-c88d2117cc74.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/0b388888-b003-4c42-adfa-c88d2117cc74.webp&#34; alt=&#34;0b388888-b003-4c42-adfa-c88d2117cc74.webp&#34;/ data-glightbox=&#34;description: 0b388888-b003-4c42-adfa-c88d2117cc74.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;@poteto tweet&lt;/p&gt;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2026-08-13 Notes</title>
    <id>https://waylonwalker.com/2026-08-13-notes/</id>
    <updated>2026-08-13T00:00:00Z</updated>
    <published>2026-08-13T00:00:00Z</published>
    <link href="https://waylonwalker.com/2026-08-13-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">notes for 2026-08-13</summary>
    <content type="html">&lt;h2 id=&#34;notable-listens&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;mark&gt;Nota&lt;/mark&gt;&lt;/span&gt;&lt;/span&gt;ble &lt;sup&gt;listens&lt;/sup&gt; &lt;a href=&#34;#notable-listens&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://youtu.be/HC8T1OlgYi0&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/HC8T1OlgYi0&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;embed-card&#34;&gt;&#xA;  &lt;a class=&#34;embed-card-link&#34; href=&#34;/stop-being-skeptical-about-ai-for-development-with-charity-majors/&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-content&#34;&gt;&#xA;      &lt;div class=&#34;embed-card-title&#34;&gt;Stop being skeptical about AI for development with Charity Majors&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-description&#34;&gt;As always with Charity Majors this was a pretty great interview. Lots of repeat ideas with some good nuggets.&lt;/div&gt;&#xA;      &lt;div class=&#34;embed-card-meta&#34;&gt;Aug 13, 2026&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://youtu.be/Gf0pR4_bv-o&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/Gf0pR4_bv-o&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;There was a particularly good section about influence vs. manipulation.  The line can be very thin and hard to ride between the two.  Both can drive people to do work.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pmf&#34;&gt;pmf &lt;a href=&#34;#pmf&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;poor mans fiberglass&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;first layer right on foam 50:50 water to glue&lt;/li&gt;&#xA;&lt;li&gt;iron on canvas&lt;/li&gt;&#xA;&lt;li&gt;final layer 25:75 water to glue&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;plaindown&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;mark&gt;Plain&lt;/mark&gt;&lt;/span&gt;&lt;/span&gt;Down &lt;a href=&#34;#plaindown&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Really happy with the progress I’m making on plaindown, today I really have the&#xA;flow of pulling in changes between desktop and phone greased up. A dritical&#xA;keybinding to get commits in with &lt;span class=&#34;keys&#34;&gt;&lt;kbd class=&#34;kbd key-ctrl&#34;&gt;ctrl&lt;/kbd&gt;&lt;/span&gt; + &lt;span class=&#34;keys&#34;&gt;&lt;kbd class=&#34;kbd key-enter&#34;&gt;enter&lt;/kbd&gt;&lt;/span&gt; landed and it feels&#xA;really good to get it all keyboard centric.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Untitled 2026-08-11</title>
    <id>https://waylonwalker.com/2026-08-11/</id>
    <updated>2026-08-11T18:03:22Z</updated>
    <published>2026-08-11T18:03:22Z</published>
    <link href="https://waylonwalker.com/2026-08-11/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/e1snsuY4lTI</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/e1snsuY4lTI&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/e1snsuY4lTI&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;great video on setting up skills and agents.md need to take some notes on it.&lt;/p&gt;&#xA;&lt;h3 id=&#34;many-small-skills&#34;&gt;Many Small Skills &lt;a href=&#34;#many-small-skills&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Something I noticed here was that theo has many small skills.  Prime example he talked about his pr skill, he split out &lt;code&gt;file-pr&lt;/code&gt; and &lt;code&gt;babysit-pr&lt;/code&gt; into separate skills.&lt;/p&gt;&#xA;&lt;h3 id=&#34;&lt;a href=&#34;/html/&#34; class=&#34;glossary-term&#34; title=&#34;HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...&#34;&gt;html&lt;/a&gt;&#34;&gt;HTML &lt;a href=&#34;#html&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I like how he set up his html reporting skill so that  he can one line &lt;code&gt;HTML&lt;/code&gt; at the end and get the agent to start responding in html.&lt;/p&gt;&#xA;&lt;h2 id=&#34;waylonwalkercom-on-new-builder&#34;&gt;waylonwalker.com on new builder &lt;a href=&#34;#waylonwalkercom-on-new-builder&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34; alt=&#34;4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34;/ data-glightbox=&#34;description: 4ba2f7b7-9893-4128-9a72-2a9bdf9c89fe.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;new builder watcher, kicks off immediately on commit through websocket connection back to the repo.&lt;/p&gt;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;plaindown-performance&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;mark&gt;plain&lt;/mark&gt;&lt;/span&gt;&lt;/span&gt;down↓ performance &lt;a href=&#34;#plaindown-performance&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Working on md.waylonwalker.com performance, and I think we are seeing really&#xA;good reponses. Things are moving much quicker with less noticable lag spikes than before, they are not completely gone, but we are really getting there. 󱨛.&lt;/p&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;@clanker&lt;/p&gt;&#xA;&lt;h2 id=&#34;performance&#34;&gt;Performance &lt;a href=&#34;#performance&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Moved Markdown parsing to a Web Worker.&lt;/li&gt;&#xA;&lt;li&gt;Delayed preview updates until the editor is idle.&lt;/li&gt;&#xA;&lt;li&gt;Reduced work during typing.&lt;/li&gt;&#xA;&lt;li&gt;Typing now stays responsive while the preview updates.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;baseline-numbers&#34;&gt;baseline numbers &lt;a href=&#34;#baseline-numbers&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Preview render: 289 ms average&lt;/li&gt;&#xA;&lt;li&gt;Preview render P95: 671 ms&lt;/li&gt;&#xA;&lt;li&gt;Preview render maximum: 769 ms&lt;/li&gt;&#xA;&lt;li&gt;Typing latency P95: 22.6 ms&lt;/li&gt;&#xA;&lt;li&gt;Worst recorded character input: 52 ms&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Preview performance&lt;/p&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;xychart-beta&#xA;    title &#34;Preview render time — lower is better&#34;&#xA;    x-axis [&#34;Average&#34;, &#34;P95&#34;]&#xA;    y-axis &#34;Milliseconds&#34; 0 --&gt; 700&#xA;    bar [289, 671]&#xA;    bar [122, 184]&#xA;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;typing-performance&#34;&gt;Typing performance &lt;a href=&#34;#typing-performance&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;pre class=&#34;mermaid&#34;&gt;&#xA;xychart-beta&#xA;    title &#34;Typing latency&#34;&#xA;    x-axis [&#34;P50&#34;, &#34;P95&#34;]&#xA;    y-axis &#34;Milliseconds&#34; 0 --&gt; 25&#xA;    bar [8.2, 22.6]&#xA;    bar [6.7, 20.4]&#xA;&lt;/pre&gt;&#xA;&lt;p&gt;rendering in the latest version is quite slow, it really waits until I am done&#xA;before it renders a preview.  I think we are going to have to change this.&lt;/p&gt;&#xA;&#xA;&lt;script type=&#34;module&#34;&gt;&#xA;  import mermaid from &#39;/assets/vendor/mermaid/mermaid.esm.min.mjs&#39;;&#xA;  const rootStyle = getComputedStyle(document.documentElement);&#xA;  const css = (name, fallback) =&gt; (rootStyle.getPropertyValue(name) || fallback).trim();&#xA;  const isDark = window.matchMedia(&#39;(prefers-color-scheme: dark)&#39;).matches ||&#xA;    document.documentElement.dataset.theme === &#39;dark&#39;;&#xA;  const accent = css(&#39;--color-primary&#39;, &#39;#ffcd11&#39;);&#xA;  const flowchart = {&#xA;    nodeSpacing: 60,&#xA;    rankSpacing: 90,&#xA;    padding: 12,&#xA;  };&#xA;  const themeCSS = `&#xA;    .label foreignObject &gt; div { padding: 14px 14px 10px; line-height: 1.2; }&#xA;    .nodeLabel { padding: 14px 14px 10px; line-height: 1.2; }&#xA;    * { cursor: pointer; }&#xA;  `;&#xA;  const themeVariables = {&#xA;    background: css(&#39;--color-background&#39;, &#39;#ffffff&#39;),&#xA;    primaryColor: css(&#39;--color-code-bg&#39;, &#39;#0a0a0a&#39;),&#xA;    primaryTextColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    primaryBorderColor: accent,&#xA;    lineColor: accent,&#xA;    textColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    nodeBkg: css(&#39;--color-code-bg&#39;, &#39;#0a0a0a&#39;),&#xA;    nodeBorder: accent,&#xA;    nodeTextColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    fontSize: &#39;16px&#39;,&#xA;    nodePadding: 20,&#xA;    nodeTextMargin: 14,&#xA;    clusterBkg: isDark ? css(&#39;--color-background&#39;, &#39;#0f0f0f&#39;) : css(&#39;--color-surface&#39;, &#39;#f9fafb&#39;),&#xA;    clusterBorder: accent,&#xA;    clusterTextColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    titleColor: css(&#39;--color-text&#39;, &#39;#1f2937&#39;),&#xA;    edgeLabelBackground: css(&#39;--color-code-bg&#39;, &#39;#0a0a0a&#39;),&#xA;  };&#xA;&#xA;  const SVG_PAN_ZOOM_CDN = &#39;https://cdn.jsdelivr.net/npm/svg-pan-zoom@3.6.2/dist/svg-pan-zoom.min.js&#39;;&#xA;  let mermaidLightbox = null;&#xA;  let activePanZoom = null;&#xA;&#xA;  // Inject lightbox styles once&#xA;  const injectLightboxStyles = () =&gt; {&#xA;    if (document.getElementById(&#39;mermaid-lightbox-css&#39;)) return;&#xA;    const style = document.createElement(&#39;style&#39;);&#xA;    style.id = &#39;mermaid-lightbox-css&#39;;&#xA;    style.textContent = `&#xA;      /* Container fills the GLightbox slide */&#xA;      .mermaid-lightbox-wrap {&#xA;        width: 100%;&#xA;        height: 100%;&#xA;        display: flex;&#xA;        align-items: center;&#xA;        justify-content: center;&#xA;        background: transparent;&#xA;        position: relative;&#xA;      }&#xA;      .mermaid-lightbox-wrap svg {&#xA;        width: 100% !important;&#xA;        height: 100% !important;&#xA;        max-width: 100%;&#xA;        max-height: 100%;&#xA;      }&#xA;      /* Hide GLightbox prev/next arrows (single-slide lightbox) */&#xA;      .glightbox-container .gprev,&#xA;      .glightbox-container .gnext {&#xA;        display: none !important;&#xA;      }&#xA;      /* Hide description area that renders as a white box */&#xA;      .glightbox-container .gslide-description,&#xA;      .glightbox-container .gslide-title,&#xA;      .glightbox-container .gdesc-inner,&#xA;      .glightbox-container .gslide-desc {&#xA;        display: none !important;&#xA;      }&#xA;      /* Remove white background from inline slide content */&#xA;      .glightbox-container .gslide-inline {&#xA;        background: transparent !important;&#xA;      }&#xA;      /* Make the inline content area fill the slide */&#xA;      .glightbox-container .ginlined-content {&#xA;        max-width: none !important;&#xA;        max-height: none !important;&#xA;        width: 100%;&#xA;        height: 100%;&#xA;        padding: 0 !important;&#xA;      }&#xA;      /* Remove box-shadow from the media container */&#xA;      .glightbox-container .gslide-media {&#xA;        box-shadow: none !important;&#xA;      }&#xA;      /* Toolbar styling */&#xA;      .mermaid-lightbox-toolbar {&#xA;        position: absolute;&#xA;        top: 8px;&#xA;        right: 8px;&#xA;        z-index: 10;&#xA;        display: flex;&#xA;        gap: 4px;&#xA;      }&#xA;      .mermaid-pz-btn {&#xA;        background: rgba(0,0,0,0.6);&#xA;        color: #fff;&#xA;        border: 1px solid rgba(255,255,255,0.3);&#xA;        border-radius: 4px;&#xA;        padding: 4px 10px;&#xA;        cursor: pointer;&#xA;        font-size: 14px;&#xA;        line-height: 1;&#xA;      }&#xA;      .mermaid-pz-btn:hover {&#xA;        background: rgba(0,0,0,0.8);&#xA;        border-color: rgba(255,255,255,0.6);&#xA;      }&#xA;    `;&#xA;    document.head.appendChild(style);&#xA;  };&#xA;&#xA;  // Lazy-load svg-pan-zoom from CDN, returns a promise&#xA;  const loadSvgPanZoom = () =&gt; {&#xA;    if (typeof svgPanZoom !== &#39;undefined&#39;) return Promise.resolve();&#xA;    return new Promise((resolve, reject) =&gt; {&#xA;      const s = document.createElement(&#39;script&#39;);&#xA;      s.src = SVG_PAN_ZOOM_CDN;&#xA;      s.onload = resolve;&#xA;      s.onerror = reject;&#xA;      document.head.appendChild(s);&#xA;    });&#xA;  };&#xA;&#xA;  // Initialize svg-pan-zoom on the SVG inside the lightbox.&#xA;  // Retries until the lightbox container has settled dimensions.&#xA;  let _pzRetries = 0;&#xA;  const initPanZoom = () =&gt; {&#xA;    if (activePanZoom) return;&#xA;    const container = document.querySelector(&#39;.glightbox-container .gslide.current .mermaid-lightbox-wrap&#39;);&#xA;    if (!container) return;&#xA;    const svgEl = container.querySelector(&#39;svg&#39;);&#xA;    if (!svgEl) return;&#xA;&#xA;    // Ensure the container has layout dimensions before initializing.&#xA;    const cRect = container.getBoundingClientRect();&#xA;    if (cRect.width &lt; 10 || cRect.height &lt; 10) {&#xA;      if (_pzRetries &lt; 20) { _pzRetries++; setTimeout(initPanZoom, 50); }&#xA;      return;&#xA;    }&#xA;&#xA;    // svg-pan-zoom needs a viewBox. Pre-rendered SVGs from mermaid&#xA;    // usually have one; browser-rendered ones may not.&#xA;    if (!svgEl.getAttribute(&#39;viewBox&#39;)) {&#xA;      let w = parseFloat(svgEl.getAttribute(&#39;width&#39;));&#xA;      let h = parseFloat(svgEl.getAttribute(&#39;height&#39;));&#xA;      if (!w &amp;&amp; svgEl.style.maxWidth) w = parseFloat(svgEl.style.maxWidth);&#xA;      if (!w || !h) {&#xA;        const r = svgEl.getBoundingClientRect();&#xA;        if (!w) w = r.width;&#xA;        if (!h) h = r.height;&#xA;      }&#xA;      if (w &gt; 0 &amp;&amp; h &gt; 0) {&#xA;        svgEl.setAttribute(&#39;viewBox&#39;, &#39;0 0 &#39; + w + &#39; &#39; + h);&#xA;      } else if (_pzRetries &lt; 20) {&#xA;        _pzRetries++; setTimeout(initPanZoom, 50); return;&#xA;      }&#xA;    }&#xA;    _pzRetries = 0;&#xA;&#xA;    // Clear inline dimensions so SVG can be sized by the container&#xA;    // and svg-pan-zoom can manage transforms.&#xA;    svgEl.removeAttribute(&#39;width&#39;);&#xA;    svgEl.removeAttribute(&#39;height&#39;);&#xA;    svgEl.style.cssText = &#39;width:100%;height:100%;&#39;;&#xA;&#xA;    try {&#xA;      activePanZoom = svgPanZoom(svgEl, {&#xA;        zoomEnabled: true,&#xA;        panEnabled: true,&#xA;        controlIconsEnabled: false,&#xA;        fit: true,&#xA;        center: true,&#xA;        contain: false,&#xA;        minZoom: 0.3,&#xA;        maxZoom: 10,&#xA;        zoomScaleSensitivity: 0.3,&#xA;        mouseWheelZoomEnabled: true,&#xA;        preventMouseEventsDefault: true,&#xA;      });&#xA;      // Double-check fit after a frame in case dimensions shifted&#xA;      requestAnimationFrame(() =&gt; {&#xA;        if (!activePanZoom) return;&#xA;        activePanZoom.resize();&#xA;        activePanZoom.fit();&#xA;        activePanZoom.center();&#xA;      });&#xA;    } catch (_) {&#xA;      activePanZoom = null;&#xA;    }&#xA;&#xA;    // Add reset/fit buttons&#xA;    let toolbar = container.querySelector(&#39;.mermaid-lightbox-toolbar&#39;);&#xA;    if (!toolbar) {&#xA;      toolbar = document.createElement(&#39;div&#39;);&#xA;      toolbar.className = &#39;mermaid-lightbox-toolbar&#39;;&#xA;      toolbar.innerHTML =&#xA;        &#39;&lt;button class=&#34;mermaid-pz-btn&#34; data-action=&#34;fit&#34; title=&#34;Fit to view&#34;&gt;Fit&lt;/button&gt;&#39; +&#xA;        &#39;&lt;button class=&#34;mermaid-pz-btn&#34; data-action=&#34;zoomin&#34; title=&#34;Zoom in&#34;&gt;+&lt;/button&gt;&#39; +&#xA;        &#39;&lt;button class=&#34;mermaid-pz-btn&#34; data-action=&#34;zoomout&#34; title=&#34;Zoom out&#34;&gt;&amp;minus;&lt;/button&gt;&#39;;&#xA;      toolbar.addEventListener(&#39;click&#39;, (ev) =&gt; {&#xA;        const btn = ev.target.closest(&#39;[data-action]&#39;);&#xA;        if (!btn || !activePanZoom) return;&#xA;        ev.preventDefault();&#xA;        ev.stopPropagation();&#xA;        const action = btn.dataset.action;&#xA;        if (action === &#39;fit&#39;) { activePanZoom.resize(); activePanZoom.fit(); activePanZoom.center(); }&#xA;        else if (action === &#39;zoomin&#39;) { activePanZoom.zoomIn(); }&#xA;        else if (action === &#39;zoomout&#39;) { activePanZoom.zoomOut(); }&#xA;      });&#xA;      container.prepend(toolbar);&#xA;    }&#xA;  };&#xA;&#xA;  // Destroy pan-zoom on lightbox close&#xA;  const destroyPanZoom = () =&gt; {&#xA;    if (activePanZoom) {&#xA;      try { activePanZoom.destroy(); } catch (_) { /* no-op */ }&#xA;      activePanZoom = null;&#xA;    }&#xA;  };&#xA;&#xA;  let _lbRetries = 0;&#xA;  const ensureMermaidLightbox = () =&gt; {&#xA;    const diagrams = document.querySelectorAll(&#39;.mermaid svg&#39;);&#xA;    if (!diagrams.length) {&#xA;      // Mermaid ESM may still be rendering -- retry up to 2s&#xA;      if (_lbRetries &lt; 20) { _lbRetries++; setTimeout(ensureMermaidLightbox, 100); }&#xA;      return;&#xA;    }&#xA;    _lbRetries = 0;&#xA;    injectLightboxStyles();&#xA;    diagrams.forEach((svg) =&gt; {&#xA;      if (svg.dataset.lightboxBound) return;&#xA;      svg.dataset.lightboxBound = &#39;true&#39;;&#xA;      svg.style.cursor = &#39;pointer&#39;;&#xA;      svg.addEventListener(&#39;click&#39;, (e) =&gt; {&#xA;        e.preventDefault();&#xA;        e.stopPropagation();&#xA;        const svgHtml = svg.outerHTML;&#xA;        const openLightbox = () =&gt; {&#xA;          if (!mermaidLightbox) {&#xA;            mermaidLightbox = GLightbox({&#xA;              selector: false,&#xA;              openEffect: &#39;fade&#39;,&#xA;              closeEffect: &#39;fade&#39;,&#xA;              zoomable: false,&#xA;              draggable: false,&#xA;              skin: &#39;clean&#39;,&#xA;            });&#xA;            mermaidLightbox.on(&#39;slide_after_load&#39;, () =&gt; {&#xA;              destroyPanZoom();&#xA;              _pzRetries = 0;&#xA;              loadSvgPanZoom().then(() =&gt; initPanZoom());&#xA;            });&#xA;            mermaidLightbox.on(&#39;close&#39;, destroyPanZoom);&#xA;          }&#xA;          mermaidLightbox.setElements([{&#xA;            content: &#39;&lt;div class=&#34;mermaid-lightbox-wrap&#34;&gt;&#39; + svgHtml + &#39;&lt;/div&gt;&#39;,&#xA;            width: &#39;90vw&#39;,&#xA;            height: &#39;90vh&#39;&#xA;          }]);&#xA;          mermaidLightbox.open();&#xA;          loadSvgPanZoom();&#xA;        };&#xA;        if (typeof GLightbox !== &#39;undefined&#39;) {&#xA;          openLightbox();&#xA;        } else if (window.initGLightbox) {&#xA;          window.initGLightbox();&#xA;          openLightbox();&#xA;        } else {&#xA;          window.addEventListener(&#39;glightbox-ready&#39;, () =&gt; { openLightbox(); }, { once: true });&#xA;        }&#xA;      });&#xA;    });&#xA;  };&#xA;&#xA;  mermaid.initialize({ startOnLoad: false, theme: &#39;base&#39;, themeVariables, flowchart, themeCSS });&#xA;  window.initMermaid = async () =&gt; {&#xA;    try {&#xA;      await mermaid.run();&#xA;    } catch (e) {&#xA;      console.error(&#39;mermaid.run failed:&#39;, e);&#xA;    }&#xA;    ensureMermaidLightbox();&#xA;  };&#xA;  if (document.readyState === &#39;loading&#39;) {&#xA;    document.addEventListener(&#39;DOMContentLoaded&#39;, () =&gt; window.initMermaid());&#xA;  } else {&#xA;    window.initMermaid();&#xA;  }&#xA;&lt;/script&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>daily 2026-08-10</title>
    <id>https://waylonwalker.com/daily/2026-08-10/</id>
    <updated>2026-08-10T15:31:06Z</updated>
    <published>2026-08-10T15:31:06Z</published>
    <link href="https://waylonwalker.com/daily/2026-08-10/" rel="alternate" type="text/html"></link>
    <summary type="text">Moving waylonwalker.com to the builder admin so that I get live builds on the main waylonwalker.com site, automated reader updates, updates from git push....</summary>
    <content type="html">&lt;p&gt;Moving waylonwalker.com to the builder admin so that I get live builds on the main waylonwalker.com site, automated reader updates, updates from &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt; push.  This will pair very well with my new editor md.waylonwalker.com.&lt;/p&gt;&#xA;&lt;h2 id=&#34;working-an-a-fullsize-keyboard-build&#34;&gt;&lt;strong&gt;work&lt;/strong&gt;ing an a &lt;span class=&#34;heading-highlight&#34;&gt;&lt;span class=&#34;heading-highlight&#34;&gt;&lt;mark&gt;full&lt;/mark&gt;&lt;/span&gt;&lt;/span&gt;size keyboard build &lt;a href=&#34;#working-an-a-fullsize-keyboard-build&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Wyatt and Rhiannon both have wanted this for awhile.  Maybe more Wyatt, not sure.  Wyatt wants something small, because he likes small cute things, but he also wants dedicated &lt;code&gt;numbers&lt;/code&gt;, &lt;code&gt;f-keys&lt;/code&gt;, &lt;code&gt;arrows&lt;/code&gt;, &lt;code&gt;print screen&lt;/code&gt;. so it&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/fca04e01-75d7-44b4-a3c1-6efe01e93f80.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;fca04e01-75d7-44b4-a3c1-6efe01e93f80.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/fca04e01-75d7-44b4-a3c1-6efe01e93f80.webp&#34; alt=&#34;fca04e01-75d7-44b4-a3c1-6efe01e93f80.webp&#34;/ data-glightbox=&#34;description: fca04e01-75d7-44b4-a3c1-6efe01e93f80.webp&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;full size keyboard build&lt;/p&gt;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Looking at this image I realize that I need to open some of the bottom to let fingers in.&lt;/p&gt;&#xA;&lt;h2 id=&#34;plaindown-features&#34;&gt;plaindown features &lt;a href=&#34;#plaindown-features&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;mobile&#34;&gt;Mobile &lt;a href=&#34;#mobile&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Plaindown is working fantastic as a note editor from mobile, but has a few things hard to get to when you are raw doggin a phone with no keeb attached.  Pull up push down second footer with some buttons to help authorship.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Upload image&lt;/li&gt;&#xA;&lt;li&gt;Favorite templates&lt;/li&gt;&#xA;&lt;li&gt;Fuzzy picker&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Alternatively remove filename and words from footer in mobile mode.&lt;/p&gt;&#xA;&lt;h3 id=&#34;desktop-features&#34;&gt;Desktop features &lt;a href=&#34;#desktop-features&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I cannot believe that its becoming something that I use on desktop.  Am I giving up my beloved nvim, no they are different, but there is something hyper specific here that is working.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;quickfix feed&lt;/li&gt;&#xA;&lt;li&gt;drag from sidebar into post to link&lt;/li&gt;&#xA;&lt;li&gt;control enter to commit&lt;/li&gt;&#xA;&lt;li&gt;diffs have &lt;code&gt;use remote&lt;/code&gt; and &lt;code&gt;use mine&lt;/code&gt; but no &lt;code&gt;merge&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;commit is a bit slow with no indication to what is being done, some slowdown for the api is expected, but something on the screen showing what’s going on would help.  For sure disable and spin the commit button.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/file/77846d16-920c-4251-aaaf-99675feb7a05.webp&#34; class=&#34;glightbox-link&#34; aria-label=&#34;77846d16-920c-4251-aaaf-99675feb7a05.webp&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/file/77846d16-920c-4251-aaaf-99675feb7a05.webp&#34; alt=&#34;77846d16-920c-4251-aaaf-99675feb7a05.webp&#34;/ data-glightbox=&#34;description: 77846d16-920c-4251-aaaf-99675feb7a05.webp&#34;&gt;&lt;/a&gt;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Untitled 2026-08-09</title>
    <id>https://waylonwalker.com/2026-08-09/</id>
    <updated>2026-08-09T17:23:28Z</updated>
    <published>2026-08-09T17:23:28Z</published>
    <link href="https://waylonwalker.com/2026-08-09/" rel="alternate" type="text/html"></link>
    <summary type="text">Plaindown new post of type shot is failing</summary>
    <content type="html">&lt;p&gt;Plaindown new post of type shot is failing&lt;/p&gt;&#xA;&lt;p&gt;Daily note should be published and not draft by default&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2026-04-06 Notes</title>
    <id>https://waylonwalker.com/2026-04-06-notes/</id>
    <updated>2026-04-06T08:37:37Z</updated>
    <published>2026-04-06T08:37:37Z</published>
    <link href="https://waylonwalker.com/2026-04-06-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/cbgSkrQ3HNg?si=VJ2kqj8XD0P6ukI_</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/cbgSkrQ3HNg?si=VJ2kqj8XD0P6ukI&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/cbgSkrQ3HNg?si=VJ2kqj8XD0P6ukI&lt;/a&gt;_&lt;/p&gt;&#xA;&lt;p&gt;Slow down to move fast&#xA;It feels painful to exercise restraint and see competition move forward&#xA;Clarity first&#xA;Long term health&#xA;Stop trying to operate in the future&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2026-03-03 Notes</title>
    <id>https://waylonwalker.com/2026-03-03-notes/</id>
    <updated>2026-03-03T14:34:59Z</updated>
    <published>2026-03-03T14:34:59Z</published>
    <link href="https://waylonwalker.com/2026-03-03-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">The big news today sweeping everywhere is the weekend bombing of Iran, Anthropic had an ultimatum to allow AI agents to autonomously pull the trigger on life...</summary>
    <content type="html">&lt;p&gt;The big news today sweeping everywhere is the weekend bombing of Iran,&#xA;Anthropic had an ultimatum to allow AI agents to autonomously pull the trigger&#xA;on life or death decisions and monitor every citizen in public spaces.  They&#xA;stood their ground and it looks like many Americans stood with them, while&#xA;spending millions on superbowl ads did almost nothing to them, this shot them&#xA;to the top app downloads as openai subs plummet and anthropic subs soar.&lt;/p&gt;&#xA;&lt;p&gt;I’m old enough to remember 9/11/01, an event that would kick off decade long&#xA;war.  It felt different then.  Maybe because I was 12, maybe because the&#xA;Internet was not the prominant source of live new information.  The vibe was&#xA;support.  Support to right the wrongs, prevent future attacks.  That day had&#xA;lasting effects for decades to come to the people on the ground.&lt;/p&gt;&#xA;&lt;p&gt;This is not meant to be politicaly in any way, not take any side good, bad,&#xA;right, wrong, purple, or grey, just the vibes I’m feeling and wanted to&#xA;document for some reason. Logging this one in unpublished, idk, not really my&#xA;expertise just wanted to write feelings.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2026-01-23 Notes</title>
    <id>https://waylonwalker.com/2026-01-23-notes/</id>
    <updated>2026-01-23T22:28:38Z</updated>
    <published>2026-01-23T22:28:38Z</published>
    <link href="https://waylonwalker.com/2026-01-23-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Next for markata go</summary>
    <content type="html">&lt;p&gt;Next for markata go&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Embed post, internal and external&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;/og/&#34; class=&#34;glossary-term&#34; title=&#34;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...&#34;&gt;Og&lt;/a&gt; images&lt;/li&gt;&#xA;&lt;li&gt;Post importer - thoughts&lt;/li&gt;&#xA;&lt;li&gt;Reader / blogroll plugin&lt;/li&gt;&#xA;&lt;li&gt;K9s inspired tui&lt;/li&gt;&#xA;&lt;li&gt;:files, :posts, :tags, :feeds,&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Extra classes&lt;/p&gt;&#xA;&lt;p&gt;Wikilinks&lt;/p&gt;&#xA;&lt;p&gt;Lsp&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Complete wikilinks&lt;/li&gt;&#xA;&lt;li&gt;Complete mentions&lt;/li&gt;&#xA;&lt;li&gt;Document diagnostic&lt;/li&gt;&#xA;&lt;li&gt;Workspace diagnostics&lt;/li&gt;&#xA;&lt;li&gt;Config completions&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Jinja_md obsidian like support&lt;/p&gt;&#xA;&lt;p&gt;View as in footer&lt;/p&gt;&#xA;&lt;p&gt;Archive missing grid of pages&lt;/p&gt;&#xA;&lt;p&gt;Nav footer different on feeds than post&#xA;Sometimes the skip to content peeks into the top left corner of the page by a few pixels, it’s distracting&lt;/p&gt;&#xA;&lt;p&gt;Tap to zoom image&lt;/p&gt;&#xA;&lt;p&gt;Google font&lt;/p&gt;&#xA;&lt;p&gt;Sitemap&lt;/p&gt;&#xA;&lt;p&gt;Background image support&lt;/p&gt;&#xA;&lt;p&gt;Mouse support in tui works, not in tmux&lt;/p&gt;&#xA;&lt;p&gt;All optional plugins with config from user should raise warning configured not able&lt;/p&gt;&#xA;&lt;p&gt;Lines of code should be separate from word count&lt;/p&gt;&#xA;&lt;p&gt;Tui press enter, should see full post and scroll/read render markdown&lt;/p&gt;&#xA;&lt;p&gt;Update branding from fast to comprehensive&lt;/p&gt;&#xA;&lt;p&gt;Debug pages, show config&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Image gallery&lt;/li&gt;&#xA;&lt;li&gt;carousel&lt;/li&gt;&#xA;&lt;li&gt;Prev/next&lt;/li&gt;&#xA;&lt;li&gt;Embedfeed&lt;/li&gt;&#xA;&lt;li&gt;Fix aside&lt;/li&gt;&#xA;&lt;li&gt;Contrast / flashbang check on admonitions styles on all themes.&lt;/li&gt;&#xA;&lt;li&gt;Glossary&lt;/li&gt;&#xA;&lt;li&gt;Banner post&lt;/li&gt;&#xA;&lt;li&gt;Keys&lt;/li&gt;&#xA;&lt;li&gt;Containers&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Page 1 link is always highlighted&lt;/li&gt;&#xA;&lt;li&gt;Page 1 link is broken when coming from page 1&lt;/li&gt;&#xA;&lt;li&gt;On mobile search is too wide&lt;/li&gt;&#xA;&lt;li&gt;Shots needs warmed with a head request&lt;/li&gt;&#xA;&lt;li&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Tags&lt;/p&gt;&#xA;&lt;p&gt;Contacts&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-11-21 Notes</title>
    <id>https://waylonwalker.com/2025-11-21-notes/</id>
    <updated>2025-11-21T14:25:59Z</updated>
    <published>2025-11-21T14:25:59Z</published>
    <link href="https://waylonwalker.com/2025-11-21-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Learned about nginx_auth today. Feels good to unlock a new skill that I did not quite understand before. I don&#39;t think I grasped that there is a backend...</summary>
    <content type="html">&lt;p&gt;Learned about nginx_auth today.  Feels good to unlock a new skill that I did not quite understand before.  I don’t think I grasped that there is a backend server in this flow to handle every request.  I could not fathom how this was secure with nginx alone.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://git.wayl.one/waylon/learn-nginx-auth&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/git.wayl.one.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/git.wayl.one.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://git.wayl.one/waylon/learn-nginx-auth&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I’m excited to give this a try in my &lt;a href=&#34;/homelab/&#34; class=&#34;glossary-term&#34; title=&#34;A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...&#34;&gt;homelab&lt;/a&gt; with k3s ingress next.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-11-19 Notes</title>
    <id>https://waylonwalker.com/2025-11-19-notes/</id>
    <updated>2025-11-19T18:55:14Z</updated>
    <published>2025-11-19T18:55:14Z</published>
    <link href="https://waylonwalker.com/2025-11-19-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Making progress on dropper this week.</summary>
    <content type="html">&lt;p&gt;Making progress on dropper this week.&lt;/p&gt;&#xA;&lt;p&gt;In prod.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;resize for image and video&lt;/li&gt;&#xA;&lt;li&gt;File feed with paging&lt;/li&gt;&#xA;&lt;li&gt;New plain filesystem backend&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;In dev&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Robust video conversion that seems to work on all my test videos&lt;/li&gt;&#xA;&lt;li&gt;Duplicate file detection&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Thinking about kedro pipelines from my phone in a parking lot here. I’m thinking about big picture what’s next for my pipelines.  I want an effective Dr plan. I want to create telemetry endpoints for catalog.  This will enable the Dr plan to identify  critical data that is not created by a pipeline and communication points to other teams.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-11-04 Notes</title>
    <id>https://waylonwalker.com/2025-11-04-notes/</id>
    <updated>2025-11-04T18:43:38Z</updated>
    <published>2025-11-04T18:43:38Z</published>
    <link href="https://waylonwalker.com/2025-11-04-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Today I gave mcat a try and it&#39;s so sick. It can anything right in the terminal, pdf, image, even video. It even works inside tmux unlike almost anything...</summary>
    <content type="html">&lt;p&gt;Today I gave mcat a try and it’s so sick.  It can &lt;code&gt;cat&lt;/code&gt; anything right in the&#xA;terminal, pdf, image, even video.  It even works inside tmux unlike almost&#xA;anything else that I’ve tried.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-25 Notes</title>
    <id>https://waylonwalker.com/2025-08-25-notes/</id>
    <updated>2025-08-25T10:45:08Z</updated>
    <published>2025-08-25T10:45:08Z</published>
    <link href="https://waylonwalker.com/2025-08-25-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Gave modd a try and it seems pretty good, will likely be slotting it in next to my justfile usage.</summary>
    <content type="html">&lt;p&gt;Gave &lt;a class=&#34;wikilink&#34; data-date=&#34;2025-08-25&#34; data-description=&#34;Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...&#34; data-title=&#34;modd&#34; href=&#34;/modd/&#34; data-preview=&#34;Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...&#34;&gt;modd&lt;/a&gt; a try and it seems pretty good, will likely be slotting it in&#xA;next to my &lt;a href=&#34;https://just.systems/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/just.systems.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/just.systems.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;justfile&lt;/a&gt; usage.&lt;/p&gt;&#xA;&lt;p&gt;Gave &lt;a href=&#34;https://github.com/nkantar/sus&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;sus&lt;/a&gt; a try, but it lacked the&#xA;configurability and flexibility I was looking for.  For now I will stick to&#xA;&lt;a href=&#34;https://markata.dev/markata/plugins/redirects/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/markata.dev.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/markata.dev.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;markata-redirects&lt;/a&gt; plugin.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-23 Notes</title>
    <id>https://waylonwalker.com/2025-08-23-notes/</id>
    <updated>2025-08-23T19:27:05Z</updated>
    <published>2025-08-23T19:27:05Z</published>
    <link href="https://waylonwalker.com/2025-08-23-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Today, some great work on the knife sharpener re-design. I&#39;ve been using the same one since I first got my ender 3 3d printer, and have wanted to make some...</summary>
    <content type="html">&lt;h2 id=&#34;knife-sharpener&#34;&gt;Knife Sharpener &lt;a href=&#34;#knife-sharpener&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Today, some great work on the knife sharpener re-design.  I’ve been using the&#xA;same one since I first got my ender 3 3d printer, and have wanted to make some&#xA;changes ever since.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Helmet Hidden In Design&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png&#34; alt=&#34;Helmet Hidden In Design&#34;/ data-glightbox=&#34;description: Helmet Hidden In Design&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;Wyatt sat with me through the design, I probably would not have gone this deep without him, he thought the helmet look was hilarious&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Knife Sharpener Double Hinge First Try&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4&#34; type=&#34;video/mp4&#34;&gt;Knife Sharpener Double Hinge First Try&lt;/video&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;Notice one of the biggest problems with this one here is how much is slides around&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Knife Sharpener Double Hinge Wing Nut&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png&#34; alt=&#34;Knife Sharpener Double Hinge Wing Nut&#34;/ data-glightbox=&#34;description: Knife Sharpener Double Hinge Wing Nut&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;This wing nut really set it apart&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;hollow-knight&#34;&gt;Hollow Knight &lt;a href=&#34;#hollow-knight&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Progress on the Hollow Knight Keeb Run.  SILKSONG in 2 WEEKS!!&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Getting The Lumafly Lantern In My Hollow Knight Keeb Run&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4&#34; type=&#34;video/mp4&#34;&gt;Getting The Lumafly Lantern In My Hollow Knight Keeb Run&lt;/video&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Unlocking Royal Waterways In Hollow Knight Keeb Run&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4&#34; type=&#34;video/mp4&#34;&gt;Unlocking Royal Waterways In Hollow Knight Keeb Run&lt;/video&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Entering Royal Waterway Hollow Knight Keeb Run&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4&#34; type=&#34;video/mp4&#34;&gt;Entering Royal Waterway Hollow Knight Keeb Run&lt;/video&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4&#34; class=&#34;glightbox-link&#34; aria-label=&#34;Unlock Royal Waterway Bench In Hollow Knight Keeb&#34;&gt;&lt;video autoplay loop muted playsinline controls preload=&#34;metadata&#34; class=&#34;md-video&#34; poster=&#34;https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.webp?h=675&amp;w=1200&#34;&gt;&lt;source src=&#34;https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4&#34; type=&#34;video/mp4&#34;&gt;Unlock Royal Waterway Bench In Hollow Knight Keeb&lt;/video&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;todays-script&#34;&gt;todays script &lt;a href=&#34;#todays-script&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Made a little script to grab these&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;post&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;feeds&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;today&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;posts&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;post&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;image&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;![&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;](&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;image&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;)&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;[&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;title&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;](&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;)&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-21 Notes</title>
    <id>https://waylonwalker.com/2025-08-21-notes/</id>
    <updated>2025-08-21T07:43:49Z</updated>
    <published>2025-08-21T07:43:49Z</published>
    <link href="https://waylonwalker.com/2025-08-21-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Is ai in 2025 like a Roomba vacuum?  The ads make it look fantastic but after some time it becomes worthless and needs constant monitoring.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For some reason the first one has kinda stuck with me.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;You think youre thinking, but you’re mostly remembering. Your thoughts are just loops your nervous system finds familiar, your not making decisions, your repeating emotional echos.  Unless you interrupt the loop your future is your past in disguise.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-17 Notes</title>
    <id>https://waylonwalker.com/2025-08-17-notes/</id>
    <updated>2025-08-17T12:21:47Z</updated>
    <published>2025-08-17T12:21:47Z</published>
    <link href="https://waylonwalker.com/2025-08-17-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">After a long time I begrudgingly setup window rules for hyprland. What I wanted was the ability to log out and jump back into work with a freshened work...</summary>
    <content type="html">&lt;p&gt;After a long time I begrudgingly setup window rules for hyprland.  What I&#xA;wanted was the ability to log out and jump back into work with a freshened work&#xA;space.  Right now I’m running on low ram and disk on hyprland and sometimes I&#xA;need to just quit everything and get back to work quick.  So I setup exec-once&#xA;to start my terminal, browser, and chat.  These are my main applications that&#xA;run on my power fingers 456 (which are on a layer that present under jkl).  I&#xA;use them every time I log in and will need them no matter what I do.  When I&#xA;exec once them, they just dump onto one workspace, you can pick it but no&#xA;matter the timing, you end up with race conditions that end up with you on&#xA;different workspaces.&lt;/p&gt;&#xA;&lt;p&gt;So I setup window rules.  I avoided this for a long time, because of my&#xA;workflow on awesomewm, I thought this manual workspace selection was superior.&#xA;What I really think happened was that awesomewm was a little trickier for me to&#xA;figure out what things were named and to actually get the rules setup&#xA;correctly.&lt;/p&gt;&#xA;&lt;p&gt;hyprland makes this pretty simple with its great cli.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hyprctl clients -j &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; jq &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep class&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now that I can see attributes of these windows as I open them I can set up&#xA;rules for them to go onto the correct workspace, or to float them.  I have a&#xA;couple of things like a file picker coming from a browser showing up in the&#xA;tiled layout, when a file picker like this shows up, just cover everything up&#xA;its temporary, no need to squeeze it into the tiled layout.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;the file picker float also fixed an issue I had where they would not show up,&#xA;and lock up brave when its in full screen mode and I don’t realize it.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;pre&gt;&lt;code class=&#34;language-conf&#34;&gt;windowrulev2 = workspace 1, class:^(steam)$&#xA;windowrulev2 = workspace 4, class:^(kitty)$&#xA;windowrulev2 = workspace 5, class:^(firefox)$&#xA;windowrulev2 = workspace 5, class:^(brave-browser)$&#xA;windowrulev2 = workspace 5, class:^(google-chrome)$&#xA;windowrulev2 = workspace 6, class:^(Signal)$&#xA;windowrulev2 = workspace 2, class:^(krita)$&#xA;windowrulev2 = workspace 8, class:^(brave-chat.openai.com__-Default)$&#xA;windowrulev2 = workspace 8, class:^(brave-youtube.com__-Default)$&#xA;windowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$&#xA;windowrulev2 = workspace 9, class:^(org.prismlauncher.PrismLauncher)$&#xA;windowrulev2 = float, class:^(org.prismlauncher.PrismLauncher)$, title:^(Console window.*)&#xA;windowrulev2 = float, class:^(xdg-desktop-portal-gtk)$&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-16 Notes</title>
    <id>https://waylonwalker.com/2025-08-16-notes/</id>
    <updated>2025-08-16T10:07:21Z</updated>
    <published>2025-08-16T10:07:21Z</published>
    <link href="https://waylonwalker.com/2025-08-16-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">[x] remove nextcloud - [x] pause photoprism - [x] pause syncthing - [x] move data to walkershare - [x] filepermissions 1000:1000 all of it - [x] organize how...</summary>
    <content type="html">&lt;h2 id=&#34;&lt;a href=&#34;/homelab/&#34; class=&#34;glossary-term&#34; title=&#34;A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...&#34;&gt;homelab&lt;/a&gt;-cleanup-day&#34;&gt;HomeLab cleanup day &lt;a href=&#34;#homelab-cleanup-day&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; remove nextcloud&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; pause photoprism&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; pause syncthing&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; move data to walkershare&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; filepermissions 1000:1000 all of it&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; organize how I want&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; resume photoprism&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; resume syncthing - update share locations&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; expose to mac over smb&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; ensure mac can write over smb&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; expose to archlinux oversmb&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; ensure archlinux can write over smb&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; expose to syncthing over pvc&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; expose to my terminal over pvc&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;wishlist&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; Forgejo repos&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; Forgejo runners&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;/&gt; explore moving from docker repository to repoflow&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-14 Notes</title>
    <id>https://waylonwalker.com/2025-08-14-notes/</id>
    <updated>2025-08-14T20:15:54Z</updated>
    <published>2025-08-14T20:15:54Z</published>
    <link href="https://waylonwalker.com/2025-08-14-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Huge progress on shots not to be confused with shots inspired by . I&#39;m building out my own instagram grid design, right now its 4 wide, but I wonder if it...</summary>
    <content type="html">&lt;p&gt;Huge progress on &lt;a href=&#34;https://waylonwalker.com/shots/&#34;&gt;shots&lt;/a&gt; not to be confused&#xA;with &lt;a href=&#34;https://shots.waylonwalker.com&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/shots.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/shots.waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;shots&lt;/a&gt; inspired by&#xA;&lt;a href=&#34;https://justin.searls.co/shots/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/justin.searls.co.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/justin.searls.co.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://justin.searls.co/shots/&lt;/a&gt;.  I’m building out my own instagram grid&#xA;design, right now its 4 wide, but I wonder if it should be 3 wide to match up&#xA;with the old instagram grid designs, and I could do cool crops like instagram&#xA;used to.&lt;/p&gt;&#xA;&lt;p&gt;I went through a bunch of old &lt;a class=&#34;wikilink&#34; data-description=&#34;All posts with the tag &amp;#34;gratitude&amp;#34;&#34; data-title=&#34;Posts tagged: gratitude&#34; href=&#34;/tags/gratitude/&#34; data-preview=&#34;All posts with the tag &amp;#34;gratitude&amp;#34;&#34;&gt;Posts tagged: gratitude&lt;/a&gt; posts and pulled images from all&#xA;of them, and update all of the images to use dropper while I was at it.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;More work after kids bed time and came up with a great concept that needs to go&#xA;into markata, yes its more configuration.  &lt;a class=&#34;wikilink&#34; data-date=&#34;2024-05-30&#34; data-description=&#34;This post is a work in progress.&#34; data-title=&#34;markata&#34; href=&#34;/markata/&#34; data-preview=&#34;This post is a work in progress.&#34;&gt;markata&lt;/a&gt; is quickly becoming&#xA;death by config.  What I wanted was the ability to make different cards&#xA;different sizes.&lt;/p&gt;&#xA;&lt;p&gt;What I came up with was adding “card_classes” to the front matter of the&#xA;markdown file.  This is a list of classes that will be added to the card div&#xA;when the card is rendered.  This way I can make cards different sizes.  Here&#xA;are a couple of good results I had.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png&#34; class=&#34;glightbox-link&#34; aria-label=&#34;screenshot-2025-08-15T01-35-08-108Z.png&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png&#34; alt=&#34;screenshot-2025-08-15T01-35-08-108Z.png&#34;/ data-glightbox=&#34;description: screenshot-2025-08-15T01-35-08-108Z.png&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;A landscape shot of quarry lake&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png&#34; class=&#34;glightbox-link&#34; aria-label=&#34;screenshot-2025-08-15T01-35-48-593Z.png&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png&#34; alt=&#34;screenshot-2025-08-15T01-35-48-593Z.png&#34;/ data-glightbox=&#34;description: screenshot-2025-08-15T01-35-48-593Z.png&#34;&gt;&lt;/a&gt;&#xA;&lt;figcaption&gt;&lt;p&gt;An image of Rhiannon and I at sunset&lt;/p&gt;&lt;/figcaption&gt;&lt;/figure&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Made a bit of cyberbrink crane progress, glued in a few cables and put the cab&#xA;on top of the tower.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-13 Notes</title>
    <id>https://waylonwalker.com/2025-08-13-notes/</id>
    <updated>2025-08-13T21:23:24Z</updated>
    <published>2025-08-13T21:23:24Z</published>
    <link href="https://waylonwalker.com/2025-08-13-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Inspired by Justin Searls Shots, I made started my own shots feed for self hosted Instagram style photos. The layout could use a lot of work, the feed seems...</summary>
    <content type="html">&lt;p&gt;Inspired by &lt;a href=&#34;https://justin.searls.co/shots/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/justin.searls.co.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/justin.searls.co.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Justin Searls Shots&lt;/a&gt;, I made&#xA;started &lt;a href=&#34;https://waylonwalker.com/shots/&#34;&gt;my own shots feed&lt;/a&gt; for &lt;a href=&#34;/self-host/&#34; class=&#34;glossary-term&#34; title=&#34;Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...&#34;&gt;self hosted&lt;/a&gt;&#xA;Instagram style photos.  The layout could use a lot of work, the feed seems&#xA;like its breaking on rebuild due to some cache issues, but its there and kind&#xA;of works and eventually will get a proper prominently placed link, for now its&#xA;an idea for anyone who sees this.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://waylonwalker.com/shots/&#34;&gt;https://waylonwalker.com/shots/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;By the way what a boss domain searls.co is.  I’ve seen Chris Coyier just got&#xA;&lt;a href=&#34;https://chriscoyier.net/2025/07/01/coyier-com/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/chriscoyier.net.jpg&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/chriscoyier.net.jpg&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;coyer.com&lt;/a&gt; and talked about&#xA;being able to use it as a family domain.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>2025-08-12 Notes</title>
    <id>https://waylonwalker.com/2025-08-12-notes/</id>
    <updated>2025-08-12T16:46:31Z</updated>
    <published>2025-08-12T16:46:31Z</published>
    <link href="https://waylonwalker.com/2025-08-12-notes/" rel="alternate" type="text/html"></link>
    <summary type="text">Sad day yesterday. We discovered that our freezer was left cracked over a day or so. Kids self serviced themselves to some sausage dogs at some point and...</summary>
    <content type="html">&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg&#34; class=&#34;glightbox-link&#34; aria-label=&#34;17550430467561838968532746154870.jpg&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg&#34; alt=&#34;17550430467561838968532746154870.jpg&#34;/ data-glightbox=&#34;description: 17550430467561838968532746154870.jpg&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Sad day yesterday.  We discovered that our freezer was left cracked over a day&#xA;or so.  Kids self serviced themselves to some sausage dogs at some point and&#xA;wedged the box in the door.  Everything was over 40F and done.&lt;/p&gt;&#xA;&lt;p&gt;Lessons learned for everyone.  For the kids, see something say something, food&#xA;should not come out of a freezer soft and barely fridge temp.  For the parents,&#xA;don’t get in a rush when loading the freezer.  If something doesn’t quite look&#xA;like it’s going to stay out, it probably won’t and next person to use it will&#xA;pay… Or you will pay when they don’t notice.  Last lesson for everyone, when&#xA;you come home late and tired from a family trip to Grandma’s and hear beeping&#xA;it’s probably important and investigate.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg&#34; class=&#34;glightbox-link&#34; aria-label=&#34;17550498066131861258207337996278.jpg&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg&#34; alt=&#34;17550498066131861258207337996278.jpg&#34;/ data-glightbox=&#34;description: 17550498066131861258207337996278.jpg&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;I need some more ram… Was waiting out prime day, prices went up and haven’t&#xA;gone down.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://forgejo.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/forgejo.org.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/forgejo.org.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;forgejo&lt;/a&gt; is pretty dope, played with it for awhile today&#xA;locally, create repos with curl, &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt; push, actions working with multiple&#xA;runners.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
</feed>