{
    "version": "https://jsonfeed.org/version/1",
    "title": "Simon Hartcher's Writing",
    "home_page_url": "https://simonhartcher.com/",
    "description": "Software Development, Web Development, and Technology",
    "author": {
        "name": "Simon Hartcher",
        "url": "https://simonhartcher.com/"
    },
    "items": [
        {
            "id": "https://simonhartcher.com/posts/2026-04-08-applying-programming-without-pointers-to-an-mbox-indexer-using-zig/",
            "content_html": "<p>Trading per-message allocations for two flat buffers, and what that unlocks for serializing the index to disk.</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2026-04-08-applying-programming-without-pointers-to-an-mbox-indexer-using-zig\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2026-04-08-applying-programming-without-pointers-to-an-mbox-indexer-using-zig/",
            "title": "Applying \"Programming Without Pointers\" to an mbox indexer using Zig",
            "summary": "Trading per-message allocations for two flat buffers, and what that unlocks for serializing the index to disk.",
            "date_modified": "2026-04-08T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2026-03-03-announcing-pixels/",
            "content_html": "<p>Sandboxed containers that you can run on your own hardware.</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2026-03-03-announcing-pixels\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2026-03-03-announcing-pixels/",
            "title": "Announcing Pixels: Disposable Linux Containers for AI Coding Agents",
            "summary": "Sandboxed containers that you can run on your own hardware.",
            "date_modified": "2026-03-03T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2026-01-19-claude-voice-mode-is-still-a-joke-in-2026/",
            "content_html": "<p>Claude: \"Oh I think I cut you off there. What were you saying?\"</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2026-01-19-claude-voice-mode-is-still-a-joke-in-2026\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2026-01-19-claude-voice-mode-is-still-a-joke-in-2026/",
            "title": "Claude voice mode is still a joke in 2026",
            "summary": "Claude: \"Oh I think I cut you off there. What were you saying?\"",
            "date_modified": "2026-01-19T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2026-01-19-my-thoughts-on-gas-town-after-10000-hours-of-claude-code/",
            "content_html": "<p>After the deacon sent the dogs to sort out the polecats, I have thoughts.</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2026-01-19-my-thoughts-on-gas-town-after-10000-hours-of-claude-code\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2026-01-19-my-thoughts-on-gas-town-after-10000-hours-of-claude-code/",
            "title": "My thoughts on Gas Town after 10,000 hours of Claude Code",
            "summary": "After the deacon sent the dogs to sort out the polecats, I have thoughts.",
            "date_modified": "2026-01-19T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2026-01-16-my-projects-in-2025/",
            "content_html": "<p>A look back at my product, tool and game development projects from 2025, plus reflections on freelancing and personal growth.</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2026-01-16-my-projects-in-2025\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2026-01-16-my-projects-in-2025/",
            "title": "My Projects in 2025",
            "summary": "A look back at my product, tool and game development projects from 2025, plus reflections on freelancing and personal growth.",
            "date_modified": "2026-01-16T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2025-12-31-give-your-agentic-processes-a-name/",
            "content_html": "<p>Combining tools and skills with a custom name yields great results</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2025-12-31-give-your-agentic-processes-a-name\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2025-12-31-give-your-agentic-processes-a-name/",
            "title": "Give your agentic processes a name",
            "summary": "Combining tools and skills with a custom name yields great results",
            "date_modified": "2025-12-31T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2025-09-22-why-im-spoiled-by-apple-silicon-but-still-love-framework/",
            "content_html": "<p>A personal comparison of battery life between my MacBook M1 Pro and Framework 13</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2025-09-22-why-im-spoiled-by-apple-silicon-but-still-love-framework\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2025-09-22-why-im-spoiled-by-apple-silicon-but-still-love-framework/",
            "title": "Why I'm Spoiled By Apple Silicon (But Still Love Framework)",
            "summary": "A personal comparison of battery life between my MacBook M1 Pro and Framework 13",
            "date_modified": "2025-09-22T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2025-09-10-best-times-to-post-on-hacker-news-according-to-claude/",
            "content_html": "<p>An analysis of optimal posting times on Hacker News based on Claude's insights into engagement patterns and user behavior</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2025-09-10-best-times-to-post-on-hacker-news-according-to-claude\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2025-09-10-best-times-to-post-on-hacker-news-according-to-claude/",
            "title": "A tool to pick the best time to post to Hacker News I made using Claude",
            "summary": "An analysis of optimal posting times on Hacker News based on Claude's insights into engagement patterns and user behavior",
            "date_modified": "2025-09-12T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2025-09-08-announcing-compile-flagz/",
            "content_html": "<p>A Zig package that generates compile_flags.txt files to provide proper editor integration for C/C++ projects using build.zig, ensuring your IDE can find include paths and provide code intelligence.</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2025-09-08-announcing-compile-flagz\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2025-09-08-announcing-compile-flagz/",
            "title": "Automate compile_flags for C/C++ projects on the Zig build system",
            "summary": "A Zig package that generates compile_flags.txt files to provide proper editor integration for C/C++ projects using build.zig, ensuring your IDE can find include paths and provide code intelligence.",
            "date_modified": "2025-09-10T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2025-03-27-adventures-in-game-development/",
            "content_html": "<p>Reverse engineering, game jams, challenges, learnings</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2025-03-27-adventures-in-game-development\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2025-03-27-adventures-in-game-development/",
            "title": "Adventures in Game Development",
            "summary": "Reverse engineering, game jams, challenges, learnings",
            "date_modified": "2025-03-27T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2025-02-16-a-fresh-start-moving-my-blog-to-the-edge/",
            "content_html": "<p>Blazingly fast and hosted for free on the edge</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2025-02-16-a-fresh-start-moving-my-blog-to-the-edge\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2025-02-16-a-fresh-start-moving-my-blog-to-the-edge/",
            "title": "A Fresh Start: Moving My Blog to the Edge",
            "summary": "Blazingly fast and hosted for free on the edge",
            "date_modified": "2025-02-16T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2024-01-17-polygon-peril-prototype-video-game-available-to-play-now/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2024-01-17-polygon-peril-prototype-video-game-available-to-play-now\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2024-01-17-polygon-peril-prototype-video-game-available-to-play-now/",
            "title": "'Polygon Peril' Prototype video game available to play now",
            "date_modified": "2024-01-17T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2023-06-08-how-to-cherry-pick-a-git-commit-from-a-fork/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2023-06-08-how-to-cherry-pick-a-git-commit-from-a-fork\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2023-06-08-how-to-cherry-pick-a-git-commit-from-a-fork/",
            "title": "How to Cherry-Pick a Git Commit from a Fork",
            "date_modified": "2023-06-08T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2023-06-08-react-behavioural-props/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2023-06-08-react-behavioural-props\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2023-06-08-react-behavioural-props/",
            "title": "React Behavioural Props",
            "date_modified": "2023-06-08T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2023-04-23-get-3d-look-rotations-in-2d-with-godot-4/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2023-04-23-get-3d-look-rotations-in-2d-with-godot-4\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2023-04-23-get-3d-look-rotations-in-2d-with-godot-4/",
            "title": "Get 3D look rotations in 2D with Godot 4",
            "date_modified": "2023-04-23T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2023-04-22-unrecord-is-this-game-footage-real-or-fake/",
            "content_html": "<p>UNRECORD is causing a stir on social media</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2023-04-22-unrecord-is-this-game-footage-real-or-fake\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2023-04-22-unrecord-is-this-game-footage-real-or-fake/",
            "title": "UNRECORD: Is this game footage real or fake?",
            "summary": "UNRECORD is causing a stir on social media",
            "date_modified": "2023-04-22T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2021-08-07-migrating-from-styled-components-to-emotion/",
            "content_html": "<p>A short and simple guide</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2021-08-07-migrating-from-styled-components-to-emotion\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2021-08-07-migrating-from-styled-components-to-emotion/",
            "title": "Migrating from Styled Components to Emotion",
            "summary": "A short and simple guide",
            "date_modified": "2021-08-07T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2018-10-15-how-to-add-javascript-bundling-to-an-existing-mvc-project/",
            "content_html": "<p>A Modern Approach to Legacy Web Applications</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2018-10-15-how-to-add-javascript-bundling-to-an-existing-mvc-project\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2018-10-15-how-to-add-javascript-bundling-to-an-existing-mvc-project/",
            "title": "How To Add JavaScript Bundling To An Existing MVC Project",
            "summary": "A Modern Approach to Legacy Web Applications",
            "date_modified": "2018-10-15T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2016-01-29-git-delete-merged-deleted-branches/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2016-01-29-git-delete-merged-deleted-branches\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2016-01-29-git-delete-merged-deleted-branches/",
            "title": "Git: Delete Merged/Deleted Branches",
            "date_modified": "2016-01-29T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2015-09-28-getting-started-with-meteor-and-react/",
            "content_html": "<p>Now with more ES6</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2015-09-28-getting-started-with-meteor-and-react\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2015-09-28-getting-started-with-meteor-and-react/",
            "title": "Getting Started With Meteor and React",
            "summary": "Now with more ES6",
            "date_modified": "2015-09-28T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2015-03-10-how-to-build-the-native-docker-client-on-windows/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2015-03-10-how-to-build-the-native-docker-client-on-windows\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2015-03-10-how-to-build-the-native-docker-client-on-windows/",
            "title": "How To Build The Native Docker Client On Windows",
            "date_modified": "2015-03-10T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2013-11-17-university-upending-my-life-and-some-history/",
            "content_html": "<p>A change of scenery and means</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2013-11-17-university-upending-my-life-and-some-history\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2013-11-17-university-upending-my-life-and-some-history/",
            "title": "University (Upending My Life) and Some History",
            "summary": "A change of scenery and means",
            "date_modified": "2013-11-17T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2013-09-30-xbox-media-centre-with-raspberry-pi/",
            "content_html": "<p>Trying out three XBMC distributions</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2013-09-30-xbox-media-centre-with-raspberry-pi\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2013-09-30-xbox-media-centre-with-raspberry-pi/",
            "title": "Xbox Media Centre with Raspberry Pi",
            "summary": "Trying out three XBMC distributions",
            "date_modified": "2013-09-30T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2012-10-03-string-trim-vs-regex-replace/",
            "content_html": "<p>A code review lesson on knowing your standard library</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2012-10-03-string-trim-vs-regex-replace\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2012-10-03-string-trim-vs-regex-replace/",
            "title": "String.Trim vs Regex.Replace",
            "summary": "A code review lesson on knowing your standard library",
            "date_modified": "2012-10-03T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2012-07-20-sublime-text-programmers-text-editor-package-control/",
            "content_html": "<p>My journey through text editors and why Sublime Text won me over</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2012-07-20-sublime-text-programmers-text-editor-package-control\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2012-07-20-sublime-text-programmers-text-editor-package-control/",
            "title": "Sublime Text - A Text Editor For Programmers - Part 1 - Package Control",
            "summary": "My journey through text editors and why Sublime Text won me over",
            "date_modified": "2012-07-20T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2012-07-05-update-all-hg-repositories-using-powershell/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2012-07-05-update-all-hg-repositories-using-powershell\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2012-07-05-update-all-hg-repositories-using-powershell/",
            "title": "Update All Hg Repositories Using Powershell",
            "date_modified": "2012-07-05T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2012-05-28-28-hour-day/",
            "content_html": "<p>Reflections on Scott Hanselman's productivity tips and the joy of programming</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2012-05-28-28-hour-day\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2012-05-28-28-hour-day/",
            "title": "28 Hour Day",
            "summary": "Reflections on Scott Hanselman's productivity tips and the joy of programming",
            "date_modified": "2012-05-28T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2011-06-29-stack-overflow-devdays-2011sydney/",
            "content_html": "<p>Stack Overflow DevDays is back and coming to Sydney</p><img src=\"https://simonhartcher.com/api/feed-view?slug=2011-06-29-stack-overflow-devdays-2011sydney\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2011-06-29-stack-overflow-devdays-2011sydney/",
            "title": "Stack Overflow DevDays 2011 - Sydney",
            "summary": "Stack Overflow DevDays is back and coming to Sydney",
            "date_modified": "2011-06-29T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2010-01-27-serious-sam-hd-kleer-skeleton-surfing/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2010-01-27-serious-sam-hd-kleer-skeleton-surfing\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2010-01-27-serious-sam-hd-kleer-skeleton-surfing/",
            "title": "Serious Sam HD – Kleer Skeleton Surfing",
            "date_modified": "2010-01-27T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2009-12-12-image-caching-for-a-wpf-desktop-application/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2009-12-12-image-caching-for-a-wpf-desktop-application\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2009-12-12-image-caching-for-a-wpf-desktop-application/",
            "title": "Image Caching for a WPF Desktop Application",
            "date_modified": "2009-12-12T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        },
        {
            "id": "https://simonhartcher.com/posts/2009-09-13-howto-query-mssql-and-send-html-email-using-powershell/",
            "content_html": "<p></p><img src=\"https://simonhartcher.com/api/feed-view?slug=2009-09-13-howto-query-mssql-and-send-html-email-using-powershell\" width=\"1\" height=\"1\" alt=\"\" />",
            "url": "https://simonhartcher.com/posts/2009-09-13-howto-query-mssql-and-send-html-email-using-powershell/",
            "title": "HOWTO Query MSSQL And Send HTML Email Using Powershell",
            "date_modified": "2009-09-13T00:00:00.000Z",
            "author": {
                "name": "Simon Hartcher"
            }
        }
    ]
}