<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Crumpled Paper</title>
        <link>https://www.crumpledpaper.tech/</link>
        <description>Technical writing on software, firmware, and Python by JP Hutchins.</description>
        <lastBuildDate>Sun, 21 Jun 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>© 2026 JP Hutchins</copyright>
        <atom:link href="https://www.crumpledpaper.tech/rss.xml" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Static Blog Comments]]></title>
            <link>https://www.crumpledpaper.tech/2026-06-21-hello-fediverse</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2026-06-21-hello-fediverse</guid>
            <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Today I learned how to setup fediverse webmentions + giscus comments
]]></description>
            <author>JP Hutchins</author>
            <category>TIL</category>
            <category>webmentions</category>
            <category>indieweb</category>
            <category>fediverse</category>
            <category>Bridgy Fed</category>
        </item>
        <item>
            <title><![CDATA[The Fastest Python Struct?]]></title>
            <link>https://www.crumpledpaper.tech/2026-06-21-python-struct-profiling</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2026-06-21-python-struct-profiling</guid>
            <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[An adventure in Python struct benchmarking: slotted class, NamedTuple, dataclass, attrs, msgspec, record-type, and a new C extension based on record-type and
msgspec. Focus is on import-time, type-construction, memory, and instantiation cost,
NOT DE/SERIALIZATION, including impact of mypyc
]]></description>
            <author>JP Hutchins</author>
            <category>types</category>
            <category>python</category>
            <category>CPython</category>
            <category>struct</category>
            <category>mypyc</category>
            <category>functional programming</category>
        </item>
        <item>
            <title><![CDATA[WSL2 for Firmware Development]]></title>
            <link>https://www.crumpledpaper.tech/2024-12-18-wsl2-for-firmware-development</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2024-12-18-wsl2-for-firmware-development</guid>
            <pubDate>Wed, 18 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This guide provides instructions for setting up an environment for developing,
debugging, and programming embedded systems firmware in the Windows Subsystem
for Linux (WSL2).
]]></description>
            <author>JP Hutchins</author>
            <category>firmware</category>
            <category>wsl</category>
            <category>tooling</category>
        </item>
        <item>
            <title><![CDATA[Enum Type Safety in C]]></title>
            <link>https://www.crumpledpaper.tech/2024-12-16-enum-type-safety-in-c</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2024-12-16-enum-type-safety-in-c</guid>
            <pubDate>Mon, 16 Dec 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[C enums can guarantee exhaustive pattern matching at compile time.
]]></description>
            <author>JP Hutchins</author>
            <category>c</category>
            <category>types</category>
        </item>
        <item>
            <title><![CDATA[Generic Request -> Response Protocol]]></title>
            <link>https://www.crumpledpaper.tech/2024-10-13-python-generic-request-response-protocol</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2024-10-13-python-generic-request-response-protocol</guid>
            <pubDate>Sun, 13 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[Python can provide 100% static type coverage for a transport by inferring
the Type of Response based on the Type of Request.
]]></description>
            <author>JP Hutchins</author>
            <category>python</category>
            <category>types</category>
        </item>
        <item>
            <title><![CDATA[Comparing Firmware Development Environments]]></title>
            <link>https://www.crumpledpaper.tech/2024-10-10-firmware-development-environments</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2024-10-10-firmware-development-environments</guid>
            <pubDate>Thu, 10 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A comparison of developer experience and toolchain performance in Window 11,
WSL2, Ubuntu 24.04, and VMWare Workstation 17.
]]></description>
            <author>JP Hutchins</author>
            <category>firmware</category>
            <category>tooling</category>
        </item>
        <item>
            <title><![CDATA[GitHub Actions for the Python Package Index]]></title>
            <link>https://www.crumpledpaper.tech/2024-06-08-github-actions-for-pypi</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2024-06-08-github-actions-for-pypi</guid>
            <pubDate>Sat, 08 Jun 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[A tutorial on mitigating security threats when distributing Python packages.
]]></description>
            <author>JP Hutchins</author>
            <category>python</category>
            <category>ci-cd</category>
            <category>security</category>
        </item>
        <item>
            <title><![CDATA[Building a Universally Portable Python App]]></title>
            <link>https://www.crumpledpaper.tech/2024-03-16-portable-python-app-1</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2024-03-16-portable-python-app-1</guid>
            <pubDate>Sat, 16 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[The introductory post of a series about designing, building, and sharing
universally compatible software written in Python.
]]></description>
            <author>JP Hutchins</author>
            <category>python</category>
            <category>packaging</category>
        </item>
        <item>
            <title><![CDATA[Astro Demo]]></title>
            <link>https://www.crumpledpaper.tech/2020-01-01-demoing-astro-features</link>
            <guid isPermaLink="false">https://www.crumpledpaper.tech/2020-01-01-demoing-astro-features</guid>
            <pubDate>Wed, 01 Jan 2020 00:00:00 GMT</pubDate>
            <description><![CDATA[Demoing some of the Astro features like asides, semantic quotes/cites, math,
inline code, code blocks, etc.
]]></description>
            <author>JP Hutchins</author>
            <category>astro</category>
            <category>demo</category>
        </item>
    </channel>
</rss>