<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[JMSWRNR]]></title>
        <description><![CDATA[James Warner's Latest Website Content]]></description>
        <link>https://jmswrnr.com/</link>
        <image>
            <url>https://jmswrnr.com/avatar-200.png</url>
            <title>JMSWRNR</title>
            <link>https://jmswrnr.com/</link>
        </image>
        <generator>RSS for Node</generator>
        <lastBuildDate>Tue, 07 Apr 2026 20:08:02 GMT</lastBuildDate>
        <atom:link href="https://jmswrnr.com/feed" rel="self" type="application/rss+xml"/>
        <pubDate>Thu, 20 Feb 2025 14:53:36 GMT</pubDate>
        <copyright><![CDATA[Copyright © 2026 James Warner. All rights reserved.]]></copyright>
        <language><![CDATA[en]]></language>
        <ttl>60</ttl>
        <item>
            <title><![CDATA[Growing Chili Peppers: A Home Guide]]></title>
            <link>https://jmswrnr.com/blog/growing-chili-peppers-a-home-guide</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/growing-chili-peppers-a-home-guide</guid>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Thu, 20 Feb 2025 14:53:36 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/976f2052e83f3bf875cb0e105049ee099c69c7d9-2056x860.png?rect=209,0,1638,860&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/976f2052e83f3bf875cb0e105049ee099c69c7d9-2056x860.png?rect=598,0,860,860&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Creative Web Dev Techniques of 2024]]></title>
            <link>https://jmswrnr.com/blog/web-dev-techniques-2024</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/web-dev-techniques-2024</guid>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Sun, 16 Jun 2024 21:36:57 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/174c1992ac99d696957adf6debf75c7e916ea678-5120x2880.jpg?rect=0,96,5120,2688&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/174c1992ac99d696957adf6debf75c7e916ea678-5120x2880.jpg?rect=1120,0,2880,2880&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Hacking a Smart Home Device]]></title>
            <description><![CDATA[How I reverse engineered an ESP32-based smart home device to gain remote control access and integrate it with Home Assistant.]]></description>
            <link>https://jmswrnr.com/blog/hacking-a-smart-home-device</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/hacking-a-smart-home-device</guid>
            <category><![CDATA[Case Study]]></category>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Sat, 03 Feb 2024 00:46:28 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/bb9a093a756fbe5c30168dfa91fa095223f29f65-1200x630.png?w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/bb9a093a756fbe5c30168dfa91fa095223f29f65-1200x630.png?rect=285,0,630,630&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Hardware Failure 2023]]></title>
            <description><![CDATA[What I've learned from a month-long nightmare of returns and repairs following unexpected hardware failure.]]></description>
            <link>https://jmswrnr.com/blog/hardware-failure-2023</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/hardware-failure-2023</guid>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Fri, 25 Aug 2023 18:48:04 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/adbc3dbbda761de9538e6a9dc1f805c6d3eb5fa5-2924x3898.jpg?rect=361,106,2202,1156&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/adbc3dbbda761de9538e6a9dc1f805c6d3eb5fa5-2924x3898.jpg?rect=884,106,1156,1156&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Protecting Next.js API Routes: Query Parameters]]></title>
            <description><![CDATA[How to protect the query parameters of your Next.js API routes from malicious use.]]></description>
            <link>https://jmswrnr.com/blog/protecting-next-js-api-routes-query-parameters</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/protecting-next-js-api-routes-query-parameters</guid>
            <category><![CDATA[Tutorial]]></category>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Thu, 23 Feb 2023 16:09:52 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/178456a5be071d0d656591ebabbd8b4ecd01a062-6000x4000.jpg?rect=0,425,6000,3150&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/178456a5be071d0d656591ebabbd8b4ecd01a062-6000x4000.jpg?rect=1000,0,4000,4000&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Streaming a <canvas> to LEDs]]></title>
            <description><![CDATA[A detailed guide on how to stream an HTML <canvas> element to an RGB LED matrix using Node.js and a Raspberry Pi.]]></description>
            <link>https://jmswrnr.com/blog/streaming-a-canvas-to-leds</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/streaming-a-canvas-to-leds</guid>
            <category><![CDATA[Tutorial]]></category>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Mon, 13 Apr 2020 19:58:34 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/fb255e7a39d8a78e4338fc4b919cadb504eaf8c4-1184x592.png?rect=28,0,1128,592&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/fb255e7a39d8a78e4338fc4b919cadb504eaf8c4-1184x592.png?rect=296,0,592,592&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Creating My Website's 3D Header 1.0]]></title>
            <description><![CDATA[A complete walk-through of how I created the 3D header for my website. From 3D scanning with an iPhone to the WebGL render process.]]></description>
            <link>https://jmswrnr.com/blog/creating-my-websites-3d-header</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/creating-my-websites-3d-header</guid>
            <category><![CDATA[Tutorial]]></category>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Wed, 25 Mar 2020 17:56:52 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/5be94cc5af91721b0e352945afa098c9032c3605-1184x592.png?rect=28,0,1128,592&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/5be94cc5af91721b0e352945afa098c9032c3605-1184x592.png?rect=296,0,592,592&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
        <item>
            <title><![CDATA[Building a PUBG Stats Website]]></title>
            <description><![CDATA[An in-depth retrospective of my solo-built stats website for PUBG that scaled to handle 32 million users.]]></description>
            <link>https://jmswrnr.com/blog/building-a-pubg-stats-website</link>
            <guid isPermaLink="true">https://jmswrnr.com/blog/building-a-pubg-stats-website</guid>
            <category><![CDATA[Case Study]]></category>
            <dc:creator><![CDATA[James Warner]]></dc:creator>
            <pubDate>Sun, 16 Feb 2020 06:31:29 GMT</pubDate>
            <media:content url="https://cdn.sanity.io/images/kecg41hi/production/4167d22564462fe2aca400e1eab79647d50f9694-1200x630.png?rect=0,0,989,519&amp;w=1200&amp;h=630&amp;fm=png" medium="image"/>
            <media:thumbnail  url="https://cdn.sanity.io/images/kecg41hi/production/4167d22564462fe2aca400e1eab79647d50f9694-1200x630.png?rect=359,0,630,630&amp;w=200&amp;h=200&amp;fm=png"/>
        </item>
    </channel>
</rss>