<?xml version="1.0" encoding="UTF-8" ?>
  <rss version="2.0">
    <channel>
        <title>Byron Wall Blog</title>
        <link>https://byroni.us</link>
        <description>Technical notes from Byron Wall on software development, data analysis, AI tooling, and engineering workflows.</description>
        <lastBuildDate>Fri, 10 Jul 2026 17:56:03 GMT</lastBuildDate>
        <item>
          <title>Canvas interactivity basics</title>
          <link>https://byroni.us/blog/canvas-interactivity-basics</link>
          <guid>https://byroni.us/blog/canvas-interactivity-basics</guid>
          <description>An interactive guide to scene models, hit testing, hover overlays, and drag-pan camera math for canvas-based interfaces.</description>
          <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Using Codex as a bridge between browser apps</title>
          <link>https://byroni.us/blog/codex-appshots-calendar-notes-workflow</link>
          <guid>https://byroni.us/blog/codex-appshots-calendar-notes-workflow</guid>
          <description>A lightweight workflow for turning information from one browser app into calendar entries and reference notes in another, using Codex and appshots as the coordination layer.</description>
          <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Encoding time on the canvas to debug Pluck inventory panning</title>
          <link>https://byroni.us/blog/pluck-inventory-viewport-time-debugging</link>
          <guid>https://byroni.us/blog/pluck-inventory-viewport-time-debugging</guid>
          <description>A Pluck debugging note about turning pan-and-zoom viewport history into a visual overlay: the canvas stays spatial, while time becomes a trace.</description>
          <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Forcing Suspense boundaries from a tiny debug overlay</title>
          <link>https://byroni.us/blog/suspense-boundary-debug-overlay</link>
          <guid>https://byroni.us/blog/suspense-boundary-debug-overlay</guid>
          <description>A Pluck debugging note about wrapping Solid Suspense boundaries with dev-only controls so loading states can be inspected on demand.</description>
          <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Iterating a comic-book app icon with contact sheets</title>
          <link>https://byroni.us/blog/comic-icon-iteration-contact-sheet</link>
          <guid>https://byroni.us/blog/comic-icon-iteration-contact-sheet</guid>
          <description>A short walkthrough of turning a generated PNG into SVG app icons by using a contact sheet to compare every iteration.</description>
          <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Managing the prompt cache on OpenAI endpoints</title>
          <link>https://byroni.us/blog/managing-openai-prompt-cache</link>
          <guid>https://byroni.us/blog/managing-openai-prompt-cache</guid>
          <description>How Video to Context structures repeated OpenAI Responses API calls so long transcript context can hit the prompt cache, report cached tokens, and make cost visible.</description>
          <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Breaking top-level Suspense into component-level Suspense</title>
          <link>https://byroni.us/blog/component-level-solid-suspense</link>
          <guid>https://byroni.us/blog/component-level-solid-suspense</guid>
          <description>How a SolidJS loading state got smoother by keeping the page shell mounted and moving resource reads behind local Suspense boundaries.</description>
          <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Understanding SolidJS resources</title>
          <link>https://byroni.us/blog/understanding-solidjs-resources</link>
          <guid>https://byroni.us/blog/understanding-solidjs-resources</guid>
          <description>An interactive guide to how SolidJS resources interact with Suspense, resource.latest, derived accessors, and memoized reads.</description>
          <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Building a review UI for LLM-processed voice memos</title>
          <link>https://byroni.us/blog/video-to-context-review-ui-llm-transcripts</link>
          <guid>https://byroni.us/blog/video-to-context-review-ui-llm-transcripts</guid>
          <description>How Video to Context grew from a transcription CLI into a local review workspace with sectioned transcripts, inline extracted evidence, and cost-aware LLM processing.</description>
          <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Packaging llmly for PyPI with a publish script</title>
          <link>https://byroni.us/blog/packaging-llmly-for-pypi</link>
          <guid>https://byroni.us/blog/packaging-llmly-for-pypi</guid>
          <description>What it took to turn a local Flask usage viewer into a PyPI package, and why a small publish script makes versioning and token-based uploads much less error-prone.</description>
          <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Making Pluck capture faster by making the timings harder to ignore</title>
          <link>https://byroni.us/blog/pluck-capture-timing-loop</link>
          <guid>https://byroni.us/blog/pluck-capture-timing-loop</guid>
          <description>I optimized Pluck&apos;s Chrome extension capture loop by adding detailed timing traces and a repeatable diagnostic batch that made every speed experiment measurable.</description>
          <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Turning voice memos into Codex-ready analysis</title>
          <link>https://byroni.us/blog/video-to-context-codex-analysis-cli</link>
          <guid>https://byroni.us/blog/video-to-context-codex-analysis-cli</guid>
          <description>How I pushed Video to Context from transcription toward a Codex-backed analysis pipeline while keeping the CLI aimed at one command that just works.</description>
          <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Adding voice memo support to Video to Context</title>
          <link>https://byroni.us/blog/voice-memos-video-to-context</link>
          <guid>https://byroni.us/blog/voice-memos-video-to-context</guid>
          <description>How I expanded a local screen-recording transcription CLI so one flag can process Apple Voice Memos into a reusable context folder.</description>
          <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Debugging background removal on a carpet-colored stuffed animal</title>
          <link>https://byroni.us/blog/debugging-stuffed-animal-background-removal</link>
          <guid>https://byroni.us/blog/debugging-stuffed-animal-background-removal</guid>
          <description>A practical walkthrough of tuning rembg for a stuffed-animal zoo: threshold sweeps, mask repair, visual contact sheets, and a regeneration path for production images.</description>
          <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Expanding webpage tables when copy is the real feature</title>
          <link>https://byroni.us/blog/expanding-web-tables-for-copying</link>
          <guid>https://byroni.us/blog/expanding-web-tables-for-copying</guid>
          <description>I added an Alt-click table viewer to my Chrome extension after needing exact DNS record values from a page that made table text hard to copy.</description>
          <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>A small shared expense splitter for family trips</title>
          <link>https://byroni.us/blog/shared-expense-splitter</link>
          <guid>https://byroni.us/blog/shared-expense-splitter</guid>
          <description>A quick static browser tool for importing shared expenses, tracking payments, and turning the final balance into a simple settlement plan.</description>
          <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Speeding up Pluck&apos;s full-page Chrome extension capture loop</title>
          <link>https://byroni.us/blog/pluck-extension-capture-speedup</link>
          <guid>https://byroni.us/blog/pluck-extension-capture-speedup</guid>
          <description>Notes from optimizing Pluck&apos;s real Chrome extension full-page capture path from slow scroll-settle loops to sub-four-second captures on recent sites.</description>
          <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Why I made a pan-and-zoom viewer for webpage images</title>
          <link>https://byroni.us/blog/chatgpt-image-pan-zoom</link>
          <guid>https://byroni.us/blog/chatgpt-image-pan-zoom</guid>
          <description>I wanted a faster way to inspect ChatGPT image generations, so I built a Chrome extension for browsing page images with pan, zoom, grids, and saved folders.</description>
          <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Running LibreChat on Coolify (and actually keeping it updated)</title>
          <link>https://byroni.us/blog/libre-chat-coolify</link>
          <guid>https://byroni.us/blog/libre-chat-coolify</guid>
          <description>Notes from getting LibreChat running on Coolify: the env vars that matter, why the API serves the UI, and how to force upgrades to pull :latest.</description>
          <pubDate>Sat, 01 Feb 2025 00:00:00 GMT</pubDate>
        </item>
<item>
          <title>Coming soon - building a threaded comments interface with React</title>
          <link>https://byroni.us/blog/threaded-comments</link>
          <guid>https://byroni.us/blog/threaded-comments</guid>
          <description>I&apos;ve built a good interface for viewing threaded comments on mobile interfaces.</description>
          <pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate>
        </item>
    </channel>
  </rss>